服务器 频道

Oracle常用的OCI函数之二

  【IT168 服务器学院】三. OCI函数说明

  示例以下面结构作为说明
   sword     swResult;
  OCIBind*  hBind;
  OCIDefine*  hDefine;
  OCIStmt      *stmtp
  OCIError     *errhp;
  OCIStmt       *stmtp
  OCISvcCtx  * svchp
  OCIEnv * envhpp;
  OCISession * usrhp;
  sb2 sb2aInd[30]; //指示器变量,用于取可能存在空值的字段
  Typedef strcut
  {
  char tname[40];
  int age;
  } t_std;
  typedef struct
  {
  sb2     sb2_tname[100];
   sb2     sb2_age[100];
  } stdInd_T;  //指示器数组
  typedef struct
  {
  ub2     ub2_tname[100];
   ub2     ub2_age[100];
  } stdLen_T; //字段长度

  t_std tstd[100];  //数组变量,用于批量操作
  stdInd_T tstdInd;
  stdLen_T tstdLen;
  stdLen_T tstdRet;

  t_std std;

  各函数数明

  1.创建OCI环境


  sword OCIEnvCreate(  
  OCIEnv **envhpp,  //OCI环境句柄指针
  ub4 mode, //初始化模式:OCI_DEFAULT/OCI_THREADED 等
  CONST dvoid *ctxp,
  CONST dvoid *(*malicfp)(dvoid *ctxp,size_t size),
  CONST dvoid *(ralocfp)(dvoid *ctxp,dvoid *memptr,size_t newsize),
  CONST void *(*mfreefp)(dvoid *ctxp,dvoid *memptr),
  Size_t xstramemsz,
  Dvoid **usrmempp
  )
  eg :
  swResult = OCIEnvCreate(&envhpp, OCI_DEFAULT, NULL, NULL, NULL, NULL, 0, NULL);

  if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO)
  return FALSE;

  sword OCIInitialize (
  ub4           mode,
   CONST dvoid   *ctxp,
   CONST dvoid   *(*malocfp)   (/* dvoid *ctxp,  size_t size _*/),
   CONST dvoid   *(*ralocfp) (/*_ dvoid *ctxp, dvoid *memptr, size_t newsize _*/),
   CONST void    (*mfreefp) (/*_ dvoid *ctxp, dvoid *memptr _*/)
  );

  sword OCIEnvInit (
  OCIEnv    **envhpp,
                    ub4       mode,
                   size_t    xtramemsz,
                    dvoid     **usrmempp
  );
  注:
  在8i以后,可用OCIEnvCreate一个函数就可以初始化环境了,相当于OCIInitialize+ OCIEnvInit

0
相关文章