在利用了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 阅读(539)
评论(0) 编辑 收藏 引用 所属分类:
CPlusPlus