BLUESKY
一步一个脚印向前走
在利用了OCI进行数据查询以后,想试试看插入数据是否顺利,所以就做了以下的代码:

 1         sprintf( szSqlStr,"%s""INSERT INTO EMP VALUES (:EMPNO,:ENAME,:AGE,:SEX)");
 2 
 3         cdr CdrValue;
 4         strcpy(CdrValue.empno,"031231304");
 5         strcpy(CdrValue.ename,"小居");
 6         strcpy(CdrValue.sex,"");
 7         CdrValue.age=20;
 8 
 9         OCIStmtPrepare(m_stmthp,m_errhp,(text *)szSqlStr,strlen(szSqlStr),OCI_NTV_SYNTAX,OCI_DEFAULT);
10 
11         OCIBindByPos(m_stmthp, &bndp, m_errhp, 1, (dvoid *)CdrValue.empno, (sb4)sizeof(CdrValue.empno), SQLT_STR, NULL, NULL, NULL, 0, NULL, (ub4)OCI_DEFAULT);
12         OCIBindByPos(m_stmthp, &bndp, m_errhp, 2, (dvoid *)CdrValue.ename, (sb4)sizeof(CdrValue.ename), SQLT_STR, NULL, NULL, NULL, 0, NULL, (ub4)OCI_DEFAULT);
13         OCIBindByPos(m_stmthp, &bndp, m_errhp, 4, (dvoid *)CdrValue.sex, (sb4)sizeof(CdrValue.sex), SQLT_STR, NULL, NULL, NULL, 0, NULL, (ub4)OCI_DEFAULT);
14         OCIBindByPos(m_stmthp, &bndp, m_errhp, 3, (dvoid *)&CdrValue.age, (sb4)sizeof(CdrValue.age), SQLT_INT, NULL, NULL, NULL, 0, NULL, (ub4)OCI_DEFAULT);
15       
16         OCIStmtExecute( m_svchp, m_stmthp, m_errhp, (ub4)1, (ub4)0,(OCISnapshot *)NULL,(OCISnapshot *)NULL, (ub4)OCI_COMMIT_ON_SUCCESS); 

一开始总是出现不能访问一段内存地址,后来才发现&CdrValue.age没有加"&",懊恼死了,花费了我大量的时间,下次一定小心


posted on 2007-05-28 20:34 LG 阅读(521) 评论(0)  编辑 收藏 引用 所属分类: CPlusPlus

<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

相册

最新评论