服务器 频道

Oracle常用的OCI函数之三

  6.读取错误信息

    sword OCIErrorGet (
  dvoid      *hndlp, //错误句柄
                      ub4        recordno,//从那里读取错误记录,从1开始
                      text       *sqlstate,//已取消,=NULL
                      sb4        *errcodep, //错误号
                      text       *bufp,  //错误内容
                      ub4        bufsiz,  //bufp长度
                      ub4        type //传递的错误句柄类型
  =OCI_HTYPE_ERROR:错误句柄
  =OCI_HTYPE_ENV:环境句柄
  );
  eg:
  ub4    ub4RecordNo = 1;
  OCIError* hError
  sb4    sb4ErrorCode;
  char   sErrorMsg[1024];

  if (OCIErrorGet(hError, ub4RecordNo++, NULL, &sb4ErrorCode, (OraText*) sErrorMsg, sizeof(sErrorMsg), OCI_HTYPE_ERROR) == OCI_SUCCESS)
        printf(“error msg:%s\n”, sErrorMsg);

  7.准备SQL语句

  sword OCIStmtPrepare (
  OCIStmt       *stmtp,//语句句柄  
                  OCIError      *errhp,
                        CONST text    *stmt,  //SQL语句
                        ub4           stmt_len,   //语句长度
                        ub4           language,  //语句的语法格式=OCI_NTV_SYNTAX
  ub4           mode //=OCI_DEFAULT
  );

  eg:
  char sSQL[1024];

  sprintf(sSQL, “select table_name from user_tables”);

  swResult = OCIStmtPrepare(stmtp errhp,  (CONST OraText*)sSQL, strlen(sSQL), OCI_NTV_SYNTAX, OCI_DEFAULT);
  if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO)
  return FALSE;

   

0
相关文章