亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cdemodp.c

?? 調用OCI的C++類
?? C
?? 第 1 頁 / 共 5 頁
字號:
#ifdef RCSIDstatic char *RCSid =   "$Header: /home/cvs/cvsroot/TIBS_HOME/src/liboci/cdemodp.c,v 1.1.1.1 2006/05/21 19:27:38 cvs Exp $ ";#endif /* RCSID *//*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//* Copyright (c) 1998, 2001, Oracle Corporation.  All rights reserved.  *//*                                                                         *//*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//***   NAME:**     cdemodp.c - C Demo program for Direct Path api******   DESCRIPTION:**     - Direct Path Api driver program to demonstrate loading.****   NOTES:**     Demonstrates usage of the direct path API.****      -- cdemodp.c --**     This is one of two C files needed to create a demo that loads**     data through direct path api.****     To build and run the demo, please read directions located in**     the header section of the cdemdp*.c modules.********   MODIFIED   (MM/DD/YY)**   msakayed    11/02/01 - Bug #2094292: add/set OCI_ATTR_DIRPATH_INPUT**   eegolf      03/04/01 - Updated for 9i**   cmlim       09/16/98 - Creation (abrumm 04/07/98)*/#include <sys/types.h>#include <sys/stat.h>#include <ctype.h>#include <fcntl.h>#include <assert.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <oratypes.h>#include <oci.h>#include <cdemodp0.h>#include <cdemodp.h>#ifndef bit# define bit(x, y) ((x) & (y))#endif#ifndef OER# define OER(x) (x)#endifstruct loadctl{  ub4                 nrow_ctl;            /* number of rows in column array */  ub2                 ncol_ctl;         /* number of columns in column array */  OCIEnv             *envhp_ctl;                       /* environment handle */  OCIServer          *srvhp_ctl;                            /* server handle */  OCIError           *errhp_ctl;                             /* error handle */  OCIError           *errhp2_ctl;                /* yet another error handle */  OCISvcCtx          *svchp_ctl;                          /* service context */  OCISession         *authp_ctl;                   /* authentication context */  OCIParam           *colLstDesc_ctl;        /* column list parameter handle */  OCIDirPathCtx      *dpctx_ctl;                      /* direct path context */  OCIDirPathColArray *dpca_ctl;           /* direct path column array handle */  OCIDirPathColArray *dpobjca_ctl;          /* dp column array handle for obj*/  OCIDirPathColArray *dpnestedobjca_ctl;  /* dp col array hndl for nested obj*/  OCIDirPathStream   *dpstr_ctl;                /* direct path stream handle */  ub1                *buf_ctl;    /* pre-alloc'd buffer for out-of-line data */  ub4                 bufsz_ctl;                 /* size of buf_ctl in bytes */  ub4                 bufoff_ctl;                     /* offset into buf_ctl */  ub4                *otor_ctl;                  /* Offset to Recnum mapping */  ub1                *inbuf_ctl;                 /* buffer for input records */  struct pctx         pctx_ctl;                     /* partial field context */  boolean             loadobjcol_ctl;             /* load to obj col(s)? T/F */};/* Forward references: */STATICF void  field_flush(/*_ struct loadctl *ctlp, ub4 rowoff _*/);STATICF sword field_set(/*_ struct loadctl *ctlp, struct tbl *tblp,                     struct obj *objp, text *recp, ub4 rowoff, ub1 bufflg _*/);STATICF void init_obj_load(/*_ struct loadctl *ctlp, struct tbl *tblp,                              struct obj *objp _*/);STATICF void alloc_obj_ca(/*_ struct loadctl *ctlp, struct tbl *tblp,                              struct obj *objp _*/);STATICF void  init_load(/*_ struct loadctl *ctl, struct tbl *table,                            struct sess *session _*/);STATICF void simple_load(/*_ struct loadctl *ctlp, struct tbl *tblp,                              struct sess *session, FILE *inputfp _*/);STATICF void  finish_load(/*_ struct loadctl *ctl _*/);STATICF void  errprint(/*_ dvoid *errhp, ub4 htype, sb4 *errcodep _*/);STATICF void  checkerr(/*_ dvoid *errhp, ub4 htype, sword status,                           text *note, sb4 state, text *file, sb4 line _*/);STATICF void  cleanup(/*_ struct loadctl *ctlp, sb4 ex_status _*/);STATICF sword do_convert(/*_ struct loadctl *ctlp, ub4 startoff, ub4 rowcnt,                              ub4 *cvtCntp, ub2 *badcoffp _*/);STATICF sword do_load(/*_ struct loadctl *ctlp, ub4 *loadCntp _*/);STATICF int           main(/*_ int argc, char *argv[] _*/);STATICF void  free_obj_hndls(struct loadctl *ctlp, struct obj *objp);/* OCI_CHECK(errhp, ub4 errhptype, sb4 status, struct loadctl *ctlp, *          OCIfunction()); * errhp is typically a (OCIError *), and errhptype is OCI_HTYPE_ERROR. * errhp in some cases may be an (OCIEnv *), and errhptype is OCI_HTYPE_ENV. */#define OCI_CHECK(errhp, htype, status, ctlp, OCIfunc) \if (OCI_SUCCESS != ((status) = (OCIfunc))) \{ \  checkerr((dvoid *)(errhp), (ub4)(htype), (sword)(status), (text *)0, \           (sb4)0, (text *)__FILE__, (sb4)__LINE__); \  if ((status) != OCI_SUCCESS_WITH_INFO) \    cleanup((struct loadctl *)ctlp, (sb4)1); \} else#define CHECKERR(errhp, htype, status) \  checkerr((dvoid *)errhp, (ub4)(htype), (sword)(status), (text *)0, \           (sb4)0, (text *)__FILE__, (sb4)__LINE__);#define FATAL(note, state) \do \{ \  checkerr((dvoid *)0, (ub4)OCI_HTYPE_ERROR, (sword)OCI_SUCCESS,           \           (text *)(note), (sb4)(state), (text *)__FILE__, (sb4)__LINE__); \  cleanup((ctlp), (sb4)2); \} while (0)/* External references: */externref struct tbl    table;externref struct sess    session;/* External definitions: */externdef FILE         *output_fp;                         /* for error msgs *//*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*                               main                                      *//*                                                                         *//*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/int main(argc, argv)int argc;char *argv[];{  sword   ociret;  struct  loadctl  ctl;  struct  loadctl *ctlp = &ctl;  output_fp = (session.outfn_sess) ? fopen((char *)session.outfn_sess, "w")                                   : stderr;  memset((dvoid *)ctlp, 0, sizeof(struct loadctl));  /* set up OCI environment and connect to the ORACLE server */  OCI_CHECK((dvoid *)0, (ub4)0, ociret, ctlp,            OCIInitialize((ub4) OCI_DEFAULT, (dvoid *)0,                          (dvoid * (*)(dvoid *, size_t)) 0,                          (dvoid * (*)(dvoid *, dvoid *, size_t))0,                          (void (*)(dvoid *, dvoid *)) 0 ));  OCI_CHECK(ctlp->envhp_ctl, OCI_HTYPE_ENV, ociret, ctlp,            OCIEnvInit((OCIEnv **)&ctlp->envhp_ctl, OCI_DEFAULT, (size_t)0,                       (dvoid **)0));  /* allocate error handles */  OCI_CHECK(ctlp->envhp_ctl, OCI_HTYPE_ENV, ociret, ctlp,            OCIHandleAlloc((dvoid *)ctlp->envhp_ctl,                           (dvoid **)&ctlp->errhp_ctl, OCI_HTYPE_ERROR,                           (size_t)0, (dvoid **)0));  OCI_CHECK(ctlp->envhp_ctl, OCI_HTYPE_ENV, ociret, ctlp,            OCIHandleAlloc((dvoid *)ctlp->envhp_ctl,                           (dvoid **)&ctlp->errhp2_ctl, OCI_HTYPE_ERROR,                           (size_t)0, (dvoid **)0));  /* server contexts */  OCI_CHECK(ctlp->envhp_ctl, OCI_HTYPE_ENV, ociret, ctlp,            OCIHandleAlloc((dvoid *)ctlp->envhp_ctl,                           (dvoid **)&ctlp->srvhp_ctl, OCI_HTYPE_SERVER,                           (size_t)0, (dvoid **)0));  OCI_CHECK(ctlp->envhp_ctl, OCI_HTYPE_ENV, ociret, ctlp,            OCIHandleAlloc((dvoid *)ctlp->envhp_ctl,                           (dvoid **)&ctlp->svchp_ctl, OCI_HTYPE_SVCCTX,                           (size_t)0, (dvoid **)0));  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,            OCIServerAttach(ctlp->srvhp_ctl, ctlp->errhp_ctl,                            session.inst_sess,                            (sb4)strlen((const char *)session.inst_sess),                            OCI_DEFAULT));  /* set attribute server context in the service context */  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,            OCIAttrSet((dvoid *)ctlp->svchp_ctl, OCI_HTYPE_SVCCTX,                       (dvoid *)ctlp->srvhp_ctl, (ub4)0, OCI_ATTR_SERVER,                       ctlp->errhp_ctl));  OCI_CHECK(ctlp->envhp_ctl, OCI_HTYPE_ENV, ociret, ctlp,            OCIHandleAlloc((dvoid *)ctlp->envhp_ctl,                           (dvoid **)&ctlp->authp_ctl, (ub4)OCI_HTYPE_SESSION,                           (size_t)0, (dvoid **)0));  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,            OCIAttrSet((dvoid *)ctlp->authp_ctl, (ub4)OCI_HTYPE_SESSION,                       (dvoid *)session.username_sess,                       (ub4)strlen((char *)session.username_sess),                       (ub4)OCI_ATTR_USERNAME, ctlp->errhp_ctl));  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,            OCIAttrSet((dvoid *)ctlp->authp_ctl, (ub4)OCI_HTYPE_SESSION,                       (dvoid *)session.password_sess,                       (ub4)strlen((char *)session.password_sess),                       (ub4)OCI_ATTR_PASSWORD, ctlp->errhp_ctl));  /* begin a session */  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,            OCISessionBegin(ctlp->svchp_ctl, ctlp->errhp_ctl, ctlp->authp_ctl,                            OCI_CRED_RDBMS, (ub4)OCI_DEFAULT));  /* set authentication context into service context */  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,            OCIAttrSet((dvoid *)ctlp->svchp_ctl, (ub4)OCI_HTYPE_SVCCTX,                       (dvoid *)ctlp->authp_ctl, (ub4)0, (ub4)OCI_ATTR_SESSION,                       ctlp->errhp_ctl));  init_load(ctlp, &table, &session);                  /* initialize the load */  simple_load(ctlp, &table, &session, stdin);                   /* load data */  finish_load(ctlp);                                      /* finish the load */  cleanup(ctlp, (sb4)0);  /* NOTREACHED */return 1;}/***++++++++++++++++++++++++++++++ alloc_obj_ca +++++++++++++++++++++++++++++++++****  Description:**** Function allocates the column arrays for any objects or nested object columns.****  Assumptions:****  Parameters:****  ctlp                           load control structure pointer **  tblp                           table pointer  **  objp                           object pointer ****  Returns:****-------------------------------------------------------------------------*/STATICF void alloc_obj_ca(ctlp, tblp, objp)struct loadctl *ctlp;               /* load control structure pointer */struct tbl     *tblp;               /* table pointer   */ struct obj     *objp;               /* object pointer */{  struct col   *colp;  sword         ociret;             /* return code from OCI calls*/  ub2 i;  /*   * Allocate a separate column array for the column object   */  OCI_CHECK(ctlp->envhp_ctl, OCI_HTYPE_ENV, ociret, ctlp,            OCIHandleAlloc((dvoid *)(objp->ctx_obj),                           (dvoid **)&(objp->ca_obj),                           (ub4)OCI_HTYPE_DIRPATH_FN_COL_ARRAY,                           (size_t)0, (dvoid **)0));  /* get number of rows in the column array just allocated */  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,            OCIAttrGet((CONST dvoid *)(objp->ca_obj),                       OCI_HTYPE_DIRPATH_FN_COL_ARRAY,                       (dvoid *)(&objp->nrows_obj), (ub4 *)0,                       OCI_ATTR_NUM_ROWS, ctlp->errhp_ctl));  /* get number of columns in the column array just allocated */  OCI_CHECK(ctlp->errhp_ctl, OCI_HTYPE_ERROR, ociret, ctlp,            OCIAttrGet((CONST dvoid *)(objp->ca_obj),                       OCI_HTYPE_DIRPATH_FN_COL_ARRAY,                       (dvoid *)(&objp->ncol_obj), (ub4 *)0,                       OCI_ATTR_NUM_COLS, ctlp->errhp_ctl));  /*   * If there are fewer rows in the object column array than in them top-level,   * one, only use as many rows in the other column array. This will happen   * when the object requires more space than all of the other columns inits   * parent table. This simplifies the loop for loading the column arrays   * so that we only have to worry about when we've filled the top-level   * column array.   */  if (objp->nrows_obj < ctlp->nrow_ctl)  {    ctlp->nrow_ctl = objp->nrows_obj;  }  /* check each column to see if it is an object, opaque or ref */  /* and if so, recurse */  for (i = 0, colp = objp->col_obj; i < objp->ncol_obj; i++, colp++)  {    if (colp->exttyp_col == SQLT_NTY || colp->exttyp_col == SQLT_REF)    {      alloc_obj_ca(ctlp, tblp, colp->obj_col);    }  }}/***++++++++++++++++++++++++++++++ init_obj_load +++++++++++++++++++++++++++++++++****  Description:****   Function which prepares the load of an object column. This should only**   be called from init_load or recursively.****  Assumptions:****  Parameters:****  ctlp                           load control structure pointer **  tblp                           table pointer   **  objp                           object pointer ****  Returns:****-------------------------------------------------------------------------*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩黄色小视频| 欧美激情一区在线| 久久精品国产秦先生| 国产日本亚洲高清| 欧美性猛交xxxx乱大交退制版| 天天免费综合色| 日本一区免费视频| 欧美写真视频网站| 国产69精品久久99不卡| 亚洲一区二区三区爽爽爽爽爽 | 成人国产精品免费观看视频| 午夜国产不卡在线观看视频| 欧美mv日韩mv国产| 91在线国产福利| 韩国v欧美v日本v亚洲v| 亚洲午夜成aⅴ人片| www成人在线观看| 欧美猛男超大videosgay| 国产精品亚洲专一区二区三区| 亚洲成人免费av| 国产精品视频九色porn| 欧美电影精品一区二区| 欧美日韩中文字幕精品| 国产盗摄视频一区二区三区| 亚洲一区二区三区三| 久久九九99视频| 91精品国产综合久久久久| av成人免费在线观看| 久久99国产精品久久| 午夜精品视频在线观看| 国产精品午夜久久| 久久婷婷综合激情| 欧美视频日韩视频| 91蜜桃传媒精品久久久一区二区| 国产麻豆日韩欧美久久| 日本午夜精品一区二区三区电影| 一区二区三区四区精品在线视频| 久久综合九色综合欧美98| 在线这里只有精品| www.在线欧美| aaa国产一区| 国产91清纯白嫩初高中在线观看| 九一九一国产精品| 蜜桃精品在线观看| 免费看日韩精品| 午夜视频在线观看一区二区| 亚洲一区二区美女| 亚洲午夜激情av| 亚洲高清免费观看高清完整版在线观看| 国产精品无人区| 国产午夜精品一区二区三区视频| 精品粉嫩超白一线天av| 91精品在线免费观看| 911精品国产一区二区在线| 欧美私人免费视频| 欧美片网站yy| 欧美成人免费网站| 日韩精品一区二区三区视频播放| 日韩欧美国产一区二区在线播放| 91精品国产综合久久久久久| 欧美精品xxxxbbbb| 91精品久久久久久蜜臀| 欧美美女黄视频| 欧美丰满嫩嫩电影| 91精品国产综合久久久久久久| 欧美一区二区播放| 91精品在线免费观看| 亚洲精品在线三区| 中文字幕中文乱码欧美一区二区 | 欧美日韩视频不卡| 91精品国产免费| 久久精品欧美一区二区三区麻豆| 国产精品午夜在线观看| 亚洲天堂久久久久久久| 亚洲综合另类小说| 日本在线播放一区二区三区| 激情文学综合丁香| 成人激情午夜影院| 欧美视频中文一区二区三区在线观看| 欧美日本在线一区| 日韩欧美一二三| 17c精品麻豆一区二区免费| 一二三四区精品视频| 久久成人免费网| 成人午夜视频在线| 欧美视频一区二区三区四区| 日韩欧美中文字幕精品| 欧美激情一区二区| 亚洲成人一区在线| 国产成人精品亚洲777人妖| 91视频免费观看| 日韩欧美一卡二卡| 一区二区三区不卡视频| 六月丁香婷婷色狠狠久久| 国产福利一区在线| 欧美亚洲禁片免费| 精品国产乱码久久久久久蜜臀| 中文字幕一区av| 蜜臀久久99精品久久久画质超高清 | 日本高清成人免费播放| 91精品国产91久久久久久一区二区 | 国产精品剧情在线亚洲| 日本不卡在线视频| 国产成人精品一区二区三区四区 | 欧美日韩一卡二卡三卡| 日韩欧美色综合| 亚洲美女淫视频| 国产精品一区二区久激情瑜伽| 成人三级伦理片| 7777精品伊人久久久大香线蕉完整版| 国产精品国产三级国产aⅴ原创| 一区二区三区在线视频观看| 久久疯狂做爰流白浆xx| 一道本成人在线| 日韩一二三区视频| 一区二区在线观看免费 | 国产一区视频在线看| 欧美网站一区二区| 亚洲免费大片在线观看| 国产一区在线不卡| 欧美成人一级视频| 亚洲激情自拍视频| 97久久精品人人澡人人爽| 国产亚洲va综合人人澡精品| 日本午夜一本久久久综合| 欧美日韩一区二区三区在线| 中文字幕乱码久久午夜不卡 | 3d动漫精品啪啪一区二区竹菊| 一区二区三区在线视频播放| 色悠悠久久综合| 亚洲综合小说图片| 欧美影院一区二区| 亚洲一区二区在线免费观看视频| 91蝌蚪国产九色| 亚洲人成网站在线| 欧洲国产伦久久久久久久| 亚洲综合久久av| 欧美另类z0zxhd电影| 天天综合色天天| 欧美成人bangbros| 国产精品一区三区| 中文字幕在线观看不卡视频| 9i在线看片成人免费| 亚洲精品你懂的| 欧美日韩国产小视频在线观看| 午夜在线成人av| 日韩女优制服丝袜电影| 国产在线播放一区| 国产精品国产三级国产有无不卡| 99re8在线精品视频免费播放| 亚洲日本va午夜在线影院| 日本久久精品电影| 日本91福利区| 国产片一区二区| 日本道色综合久久| 日韩精品成人一区二区三区| 日韩一卡二卡三卡四卡| 国产精品亚洲综合一区在线观看| 亚洲天堂福利av| 欧美一区二区三区视频免费播放 | 韩国三级电影一区二区| 国产午夜精品久久久久久久| 91视频免费播放| 日本欧洲一区二区| 欧美国产激情二区三区| 日本精品视频一区二区三区| 日本不卡在线视频| 国产精品久久久久久久岛一牛影视 | 日韩电影一区二区三区四区| 久久久久久亚洲综合| 色婷婷综合视频在线观看| 麻豆中文一区二区| 国产精品黄色在线观看| 777亚洲妇女| 国产999精品久久久久久绿帽| 亚洲一区在线观看视频| 精品国产乱码久久| 91浏览器入口在线观看| 日本欧美久久久久免费播放网| 国产精品无圣光一区二区| 色妹子一区二区| 日本一区二区免费在线观看视频| 色综合久久66| 日韩一区精品字幕| 中文字幕制服丝袜一区二区三区| 欧美一区二区在线观看| 99久久精品99国产精品 | 久88久久88久久久| 亚洲一区二区av在线| 久久网这里都是精品| 欧美日韩在线直播| 成人久久视频在线观看| 日韩av二区在线播放| 亚洲另类春色国产| 久久久精品国产免费观看同学| 在线播放国产精品二区一二区四区| www.一区二区| 激情成人午夜视频| 亚洲www啪成人一区二区麻豆| 日韩码欧中文字|