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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cdemodp.c

?? 調(diào)用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:****-------------------------------------------------------------------------*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av成人免费在线观看| 亚洲丝袜自拍清纯另类| 欧美一区二区三区免费| 欧美日韩二区三区| 久久天天做天天爱综合色| 日韩欧美另类在线| 日韩亚洲欧美一区| 精品日韩一区二区三区免费视频| 91精品欧美一区二区三区综合在| 欧美一区二区啪啪| 日韩一二三区视频| xf在线a精品一区二区视频网站| 久久免费视频色| 国产欧美日韩精品一区| 中文字幕一区二| 亚洲精品视频免费观看| 亚洲国产成人va在线观看天堂 | 青青草国产精品亚洲专区无| 亚洲超碰精品一区二区| 日本不卡视频一二三区| 久久不见久久见免费视频7| 国产一区二区久久| 99re在线精品| 欧美日韩精品一区二区三区四区| 91麻豆精品国产91久久久久久久久| 日韩欧美在线1卡| 久久久久99精品一区| 国产精品国产自产拍高清av王其 | 蜜桃视频第一区免费观看| 久久精品国产成人一区二区三区 | 亚洲3atv精品一区二区三区| 日日嗨av一区二区三区四区| 国模套图日韩精品一区二区| www.一区二区| 欧美性一区二区| 欧美精品一区二区在线观看| 中文字幕亚洲在| 亚洲午夜av在线| 精品一区二区三区不卡 | 欧美日韩第一区日日骚| 精品成人在线观看| 麻豆一区二区三| 国产精品99久久久久久似苏梦涵 | 日韩亚洲欧美综合| 国产精品美女久久久久久久网站| 亚洲在线一区二区三区| 捆绑调教美女网站视频一区| 99久久精品免费观看| 欧美一区二区在线播放| 国产精品嫩草99a| 奇米影视一区二区三区| 成人精品视频.| 91精品国产日韩91久久久久久| 欧美激情在线看| 午夜精品123| yourporn久久国产精品| 日韩一二三区不卡| 亚洲裸体xxx| 国产成人亚洲精品狼色在线| 欧美裸体一区二区三区| 国产精品久久免费看| 麻豆91在线播放免费| 欧美在线三级电影| 欧美激情在线观看视频免费| 蜜芽一区二区三区| 欧美性感一区二区三区| 欧美国产日本视频| 久久精品国产久精国产| 欧美丝袜丝交足nylons| 国产精品久久久久久久久免费丝袜| 视频在线在亚洲| 一本一道久久a久久精品| 久久精品亚洲精品国产欧美 | 欧美日韩一区成人| 亚洲婷婷综合色高清在线| 国产精品996| 精品电影一区二区| 日日夜夜免费精品| 欧美视频在线一区| 亚洲欧美在线高清| 国产成人精品一区二区三区四区 | 欧美日韩精品专区| 亚洲欧美在线视频| 成人免费精品视频| 久久免费精品国产久精品久久久久| 日韩精品一级中文字幕精品视频免费观看 | 亚洲免费毛片网站| 成人免费视频一区| 国产亚洲污的网站| 国产麻豆成人精品| 精品国产91九色蝌蚪| 日韩成人精品在线| 欧美性色黄大片手机版| 一区二区三区丝袜| 99久久国产综合色|国产精品| 中文字幕av一区二区三区高| 国产毛片精品一区| 26uuu国产一区二区三区 | 51精品久久久久久久蜜臀| 亚洲国产综合色| 欧美日韩一区二区在线观看| 亚洲一区二区在线观看视频| 91在线视频在线| 亚洲三级在线免费| 色天使久久综合网天天| 一区二区三区四区精品在线视频| 91国产成人在线| 亚洲伦理在线免费看| 91在线porny国产在线看| 亚洲精品日日夜夜| 欧美色手机在线观看| 五月天激情小说综合| 欧美精品九九99久久| 日本va欧美va欧美va精品| 欧美一区二区三区在线视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品国精品自拍自在线| 国产精品一区二区三区四区| 久久久精品欧美丰满| 99久久久无码国产精品| 亚洲精品日韩综合观看成人91| 国产午夜精品福利| 成人激情午夜影院| 亚洲精品免费电影| 欧美精品三级在线观看| 激情另类小说区图片区视频区| 久久久综合视频| 99这里只有久久精品视频| 亚洲一二三区视频在线观看| 欧美一区二区在线观看| 国产激情偷乱视频一区二区三区| 国产精品久久久久久久久动漫| 91一区二区三区在线观看| 天堂在线一区二区| 久久亚洲欧美国产精品乐播| 99久久er热在这里只有精品15| 亚洲一区二区三区不卡国产欧美| 欧美一区日本一区韩国一区| 国产成人精品一区二区三区网站观看| 亚洲色大成网站www久久九九| 欧美日韩成人综合在线一区二区| 国产一区二区福利| 亚洲夂夂婷婷色拍ww47| 久久伊人中文字幕| 色婷婷狠狠综合| 狠狠色综合播放一区二区| 亚洲欧美福利一区二区| 欧美不卡在线视频| 91在线视频18| 蜜桃久久av一区| 亚洲欧美日韩小说| 亚洲精品一区二区三区影院| 色美美综合视频| 国产在线视频精品一区| 一区二区三区不卡视频在线观看 | 欧美韩国一区二区| 欧美三级视频在线| 国产成a人亚洲| 奇米精品一区二区三区四区| 最近日韩中文字幕| 精品日韩99亚洲| 欧美日韩一区二区不卡| 成人三级在线视频| 美女视频黄免费的久久 | 亚洲国产精品尤物yw在线观看| 亚洲精品一区二区在线观看| 欧美日韩高清一区二区| 99精品热视频| 国产美女在线精品| 日本va欧美va欧美va精品| 亚洲精选免费视频| 欧美国产乱子伦| 欧美精品一区二区久久久| 欧美日韩不卡在线| 91蜜桃视频在线| 国产黄色成人av| 捆绑紧缚一区二区三区视频| 亚洲成人av一区二区三区| 亚洲欧洲www| 日本一区二区在线不卡| 精品国产99国产精品| 在线播放国产精品二区一二区四区 | 日韩精品一卡二卡三卡四卡无卡| 亚洲男女毛片无遮挡| 国产精品久久看| 久久久www成人免费毛片麻豆| 欧美猛男男办公室激情| 在线观看国产精品网站| 91小视频免费看| 不卡电影一区二区三区| 粉嫩一区二区三区性色av| 国产老肥熟一区二区三区| 蜜芽一区二区三区| 日韩av一二三| 日本va欧美va精品发布| 热久久一区二区| 日韩av一区二区在线影视| 日韩专区欧美专区| 午夜视频一区在线观看| 亚洲一区二区三区激情|