📄 cdemodp0.h
字号:
/* * $Header: /home/yas/cvs/SQLAPI/include/ora_linux/cdemodp0.h,v 1.1.1.1 2005/05/05 08:12:35 yas Exp $ *//* Copyright (c) 1998, 1999, Oracle Corporation. All rights reserved.*//* NAME cdemodp0.h - C Demo program for Direct Path api DESCRIPTION - Internal data structs, macros, & defines for cdemodp driver. NOTES Structures, macros, constants used only by cdemodp.c. MODIFIED (MM/DD/YY) mjaeger 07/14/99 - bug 808870: OCCS: convert tabs, no long lines abrumm 12/22/98 - lint cmlim 11/17/98 - take away hardcoded MAX_RECLEN; now a session parm cmlim 10/06/98 - correct typo cmlim 10/02/98 - added externref cmlim 09/16/98 - internal data structs, macros, & defines for cdemodp cmlim 09/16/98 - Creation (abrumm 04/07/98)*/#ifndef cdemodp0_ORACLE# define cdemodp0_ORACLE# include <oratypes.h># include <oci.h>/* partial field context structure, maintained by field setting function */struct pctx{ ub1 valid_pctx; /* partial context is valid */ ub4 pieceCnt_pctx; /* count of partial pieces */ ub4 row_pctx; /* which row in column array */ ub4 col_pctx; /* which column in column array */ ub4 len_pctx; /* length of this column so far */ int fd_pctx; /* open file descriptor data is coming from */ char *fnm_pctx; /* filename for data source */};/* CLEAR_PCTX(struct pctx pctx) * Macro to clear the partial context state */#define CLEAR_PCTX(pctx) \ ((pctx).valid_pctx = FALSE, (pctx).pieceCnt_pctx = 0, \ (pctx).row_pctx = UB4MAXVAL, (pctx).col_pctx = UB4MAXVAL, \ (pctx).len_pctx = 0, (pctx).fd_pctx = -1, \ (pctx).fnm_pctx = (char *)0)#define SET_PCTX(pctx, rowoff, coloff, clen, fd, fnm) \ ((pctx).valid_pctx = TRUE, (pctx).pieceCnt_pctx++, \ (pctx).row_pctx = (rowoff), (pctx).col_pctx = (coloff), \ (pctx).len_pctx += (ub4)(clen), (pctx).fd_pctx = (fd), \ (pctx).fnm_pctx = (fnm))#define LEN_PCTX(pctx) ((pctx).len_pctx)/* Does the input record correspond to the first piece of a row? * Note that a row which is not pieced is a first piece too. */#define FIRST_PIECE(pctx) \( (pctx).valid_pctx == FALSE || \ ((pctx).valid_pctx == TRUE && ((pctx).pieceCnt_pctx == 1)))/* return values from field_set() */#define FIELD_SET_COMPLETE 0#define FIELD_SET_ERROR 1#define FIELD_SET_BUF 2#define FIELD_SET_PARTIAL 3/* return values from do_convert() */#define CONVERT_SUCCESS 0#define CONVERT_ERROR 1#define CONVERT_NEED_DATA 2#define CONVERT_CONTINUE 3/* return values from do_load() */#define LOAD_SUCCESS 0#define LOAD_ERROR 1#define LOAD_NEED_DATA 2#define LOAD_NO_DATA 3/* state values for simple_load() */#define RESET 1 /* initial state, reset data structures to empty */#define GET_RECORD 2 /* get input records */#define FIELD_SET 3 /* assign fields of input records to columns */#define DO_CONVERT 4 /* convert column array input to stream format */#define DO_LOAD 5 /* load the direct stream */#define END_OF_INPUT 6 /* no more input data *//* Secondary buffer sizes for OUTOFLINE fields; no science here, just a WAG */#define SECONDARY_BUF_SIZE (1024*1024) /* size of secondary buffer */#define SECONDARY_BUF_SLOP (8*1024) /* get another field if this much avail */#define STATICF#ifndef externref# define externref extern#endif#endif /* cdemodp0_ORACLE */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -