123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553 |
- /*
- * Licensed Materials - Property of IBM and/or HCL
- *
- * IBM Informix Dynamic Server
- * Copyright IBM Corporation 1996, 2011
- * (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved.
- *
- ***************************************************************************
- *
- * Title: sqlhdr.h
- * Description: header file for all embedded sql programs
- *
- ***************************************************************************
- */
- #ifndef _SQLHDR
- #define _SQLHDR
- #include "ifxtypes.h"
- #include "sqlda.h"
- #include "sqlca.h"
- #include "collct.h"
- #include "int8.h"
- #include "locator.h"
- #include "datetime.h"
- #include "value.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct _ifx_squlist
- {
- char **_SQUulist; /* columns to be updated */
- struct _squlist *_SQUnext; /* next update list */
- mint _SQUid; /* update list id */
- } ifx_squlist_t;
- typedef struct _ifx_cursor
- {
- struct _ifx_cursor *_SQCcursptr; /* pointer to the statement/cursor block */
- int2 _SQCstmttype; /* SQ_SELECT, SQ_INSERT, etc. */
- int2 _SQCsqlid; /* SQL's id for this cursor */
- int2 _SQCnfields; /* number of result fields
- * (number supplied by SQL)
- */
- int2 _SQCnibind; /* number of input args */
- int2 _SQCnobind; /* number of output args */
- int2 _SQCnrettype; /* number of fields sent for the
- * rettype msg
- */
- int4 _SQCtcount; /* tuples remaining in buffer */
- int4 _SQCtsize; /* length of data expected from
- * SQL
- */
- int4 _SQCtbsize; /* tuple buffer size */
- int4 _SQCflags; /* CROPEN, CREOF, CRSINGLE, CRPREPARE */
- /* used for scroll cursors */
- int4 _SQCfirst; /* rowid of 1st tuple in buffer */
- int4 _SQClast; /* rowid of last tuple in buffer */
- ifx_sqlvar_t *_SQCibind; /* pointer to first in array of
- * binding structures for arguments
- * to be taken from the user
- * program and sent to SQL;
- */
- ifx_sqlvar_t *_SQCobind; /* pointer to first in array of
- * binding structures for values
- * to be received from SQL and
- * supplied to the user program;
- */
- ifx_sqlvar_t *_SQCrettype; /* pointer to first in array of
- * binding structure for values
- * to be sent thru the rettype
- * msg
- */
- ifx_sqlvar_t *_SQCfields; /* pointer to first in array of
- * structures describing the data
- * to be received from SQL;
- * (fields described by SQL)
- */
- ifx_sqlda_t *_SQCsqlda; /* pointer to sqlda */
- char **_SQCcommand; /* pointer to ptrs to pieces of
- * the command
- */
- char *_SQCstrtab; /* pointer to table of strings - the
- * names of the attributes to be
- * received from SQL
- * (table supplied by SQL)
- */
- char *_SQCtbuf; /* tuple buffer */
- char *_SQCtuple; /* pointer to current tuple within
- * buffer
- */
- char *_SQCname; /* cursor name */
- char *_SQCapiname; /* column name buffer when */
- /* DBAPICODE is set */
- mint _SQCposition; /* Used only for INSERT AT stmts */
- mint _SQCiscollstmt; /* Set if cursor or stmt is for */
- /* collection table */
- mint _SQCcl_putcnt; /* Number of variable length rows
- * inserted using an insert cursor.
- */
- ifx_collection_t *_SQCcollection; /* pointer to collection var */
- ifx_coll_cur_t _SQCcollcur; /* collection manager cursor block */
- ifx_cl_tupinfo_t *_SQCcl_tupleinfo; /* collection tuple information */
- ifx_literal_t *_SQClitvalues; /* pointer to the input values
- * specified for the collection table */
- ifx_literal_t *_SQC_savlitvalues; /* pointer to the saved
- * literal values that have
- * the QMARKBIND entries in
- * it */
- ifx_namelist_t *_SQCnamelist; /* Pointer to column names
- * specified in the projection
- * list for SELECT, UPDATE, INSERT
- * and DELETE */
- int2 _SQCcl_num; /* number of collection columns */
- /* the following 4 fields are for open-fetch-close optimization */
- int2 _SQCopen_state; /* see open_state below */
- char *_SQCdesc_name; /* saved sql desc name */
- ifx_sqlda_t *_SQCidesc; /* saved idesc value */
- int2 _SQCreopt; /* saved reoptimization flag */
- void *_SQCcls; /* reserved for fast path */
- void *_SQCcur7; /* points to the corresponding
- * 7.x cursor structure */
- int4 _SQCflags3; /* reserved flag for future use */
- void *_SQCreserved; /* reserved for future use */
- } ifx_cursor_t;
- typedef struct _ifx_statement
- {
- int2 _SQSstmttype; /* SQ_SELECT, SQ_INSERT, etc. */
- int2 _SQSsqlid; /* SQL's id for this cursor */
- void *_SQSreserved; /* reserved for future use */
- } ifx_statement_t;
- typedef struct _ifx_hostvar {
- char *hostaddr; /* address of host variable */
- int2 fieldtype; /* field entry requested by GET */
- int2 hosttype; /* host type */
- int4 hostlen; /* length of field type */
- int2 qualifier; /* qualifier for DATETIME/INTERVAL */
- char *btname; /* Base type name if provided in */
- /* host variable declaration */
- char *btownername; /* Base type owner name */
- char *cstr; /* collection or row host string */
- void *reserved; /* reserved for future use */
- } ifx_hostvar_t;
- /*
- * CURSOR state when (OPTOFC) Open-Fetch-Close Optimization is being used
- */
- #define CURSOR_NOT_OPEN 0
- #define CURSOR_USER_OPEN 1
- #define CURSOR_OPEN_FETCH 2
- #define CURSOR_FETCHING 3
- /*
- * SQL field type codes
- */
- #define XSQLD 0
- #define XSQLTYPE 1
- #define XSQLLEN 2
- #define XSQLPRECISION 3
- #define XSQLNULLABLE 4
- #define XSQLIND 5
- #define XSQLDATA 6
- #define XSQLNAME 7
- #define XSQLSCALE 8
- #define XSQLILEN 9
- #define XSQLITYPE 10
- #define XSQLIDATA 11
- #define XSQLXID 12
- #define XSQLTYPENAME 13
- #define XSQLTYPELEN 14
- #define XSQLOWNERLEN 15
- #define XSQLOWNERNAME 16
- #define XSQLSOURCETYPE 17
- #define XSQLSOURCEID 18
- /*
- * Specifications for FETCH
- */
- typedef struct _fetchspec
- {
- int4 fval; /* scroll quantity */
- mint fdir; /* direction of FETCH (NEXT, PREVIOUS..) */
- mint findchk; /* check for indicator? */
- } _FetchSpec;
- /*
- * Connection type
- */
- #define IFX_CONN_TYPE_NO_AUTH 0x0
- #define IFX_CONN_TYPE_USER_AUTH 0x1
- #define IFX_CONN_TYPE_CRED_AUTH 0x2
- /*
- * User connection structure
- */
- typedef struct ifx_user_struct
- {
- char *name;
- char *passwd;
- } ifx_user_t;
- /*
- * ASF connection structure
- */
- typedef struct ifx_connect_struct
- {
- int2 conn_type; /* connection type */
- void *conn_cred_hdl; /* connection credential handle */
- /* could be pointer to ifx_user_t */
- /* or any CSS supported credentials */
- } ifx_conn_t;
- /*
- * Types stored in csblock_t (iqutil.c)
- */
- #define IQ_CURSOR 0x0000
- #define IQ_STMT 0x0001
- #define IQ_ALL 0x0002
- #define IQ_SKIP_CUR_CHK 0x0100
- #define IQ_SKIP_DOWNSHIFT 0x0200
- /*
- * The following defines will be used to check the installed version of
- * the libraries against the ones used during compilation. A handshaking
- * method was introduced with shared libraries to indicate if the
- * API changed between one release of the library to the other.
- */
- #define IFX_GENLIB_ID 1 /* identifier for libgen.so */
- #define IFX_OSLIB_ID 2 /* identifier for libos.so */
- #define IFX_SQLILIB_ID 3 /* identifier for libsql.so */
- #define IFX_GLSLIB_ID 4 /* identifier for libgls.so */
- /*
- * provide macro definition for the library versions
- * being used while generating client's application executable.
- */
- #define CLIENT_GEN_VER 710 /* libgen.so used for compiling application */
- #define CLIENT_OS_VER 710 /* libos.so used for compiling application */
- #define CLIENT_SQLI_VER 720 /* libsql.so used for compiling application */
- #define CLIENT_GLS_VER 710 /* libgls.so used for compiling application */
- /*
- * provide error message codes if apis of library installed is different
- * than the one with which the application was compiled.
- */
- #define GEN_FAIL_CODE -1280 /* generate error message code for genlib */
- #define OS_FAIL_CODE -1281 /* generate error message code for oslib */
- #define SQLI_FAIL_CODE -1282 /* generate error message code for libsql */
- #define GLS_FAIL_CODE -1283 /* generate error message code for libgls */
- #ifdef IFX_THREAD
- /* defines for dynamic thread functions */
- #define TH_ONCE 0
- #define TH_MUTEXATTR_CREATE 1
- #define TH_MUTEXATTR_SETKIND 2
- #define TH_MUTEXATTR_DELETE 3
- #define TH_MUTEX_INIT 4
- #define TH_MUTEX_DESTROY 5
- #define TH_MUTEX_LOCK 6
- #define TH_MUTEX_UNLOCK 7
- #define TH_MUTEX_TRYLOCK 8
- #define TH_CONDATTR_CREATE 9
- #define TH_CONDATTR_DELETE 10
- #define TH_COND_INIT 11
- #define TH_COND_DESTROY 12
- #define TH_COND_TIMEDWAIT 13
- #define TH_KEYCREATE 14
- #define TH_GETSPECIFIC 15
- #define TH_SETSPECIFIC 16
- #define TH_SELF 17
- /* Number of dynamic thread functions */
- #define TH_MAXIMUM 18
- MI_EXT_DECL mint ifxOS_set_thrfunc(mint func, mulong (*funcptr)());
- #endif /* IFX_THREAD */
- #ifndef USEMEMCPY
- #ifndef NT
- #if defined(__cplusplus)
- MI_EXT_DECL void byfill(char *s, int n, char c);
- #endif /* defined (__cplusplus) */
- #endif /* !NT */
- #endif /* !USEMEMCPY */
- #ifdef NT_MI_SAPI
- #ifndef NT_SERVER /* byfill macro definition only for NT Blades */
- #define byfill(s,n,c) memset(s,c,n)
- #endif /* NT_SERVER */
- #endif /* NT_MI_SAPI */
- MI_EXT_DECL mlong ifx_get_row_xid(ifx_collection_t *collp, mint *colnum);
- MI_EXT_DECL char * ifx_get_row_extended_name(ifx_collection_t *collp);
- MI_EXT_DECL mint ifx_checkAPI(mint libver, mint libid);
- MI_EXT_DECL mint bycmpr(const char *st1, const char *st2, mint count);
- MI_EXT_DECL mint byleng(const char *beg, mint cnt);
- MI_EXT_DECL void ldchar(const char *from, mint count, char *to);
- #ifndef USEMEMCPY
- MI_EXT_DECL void bycopy(const char *s1, char *s2, mint n);
- #endif /* !USEMEMCPY */
- #ifdef NT /* We need this declaration on NT to export it */
- MI_EXT_DECL void bycopy(const char *s1, char *s2, mint n);
- #endif /*NT */
- MI_EXT_DECL void rdownshift(char *s);
- MI_EXT_DECL void rupshift(char *s);
- #ifndef USE_STRFUNS
- MI_EXT_DECL void stcat(const char *src, char *dst);
- MI_EXT_DECL void stcopy(const char *src, char *dst);
- MI_EXT_DECL mint stleng(const char *src);
- #endif /* !USE_STRFUNS */
- MI_EXT_DECL mint stcmpr(const char *s1, const char *s2);
- MI_EXT_DECL void stchar(const char *from, char *to, mint count);
- MI_EXT_DECL mint rstoi(char *s, mint *val);
- MI_EXT_DECL mint rstoi4(char *s, int4 *val);
- MI_EXT_DECL mint rdatestr(int4 jdate, char *str);
- MI_EXT_DECL mint rdayofweek(int4 date);
- MI_EXT_DECL mint rdefmtdate(int4 *pdate, char *fmtstring, char *input);
- MI_EXT_DECL mint ifx_defmtdate(int4 *pdate, char *fmtstring, char *input, char db_century);
- MI_EXT_DECL mint rfmtdate(int4 date, char *fmtstring, char *result);
- MI_EXT_DECL mint rfmtdec(struct decimal *dec, char *format, char *outbuf);
- MI_EXT_DECL mint rfmtdouble(double dvalue, char *format, char *outbuf);
- MI_EXT_DECL mint rfmtlong(int4 lvalue, char *format, char *outbuf);
- MI_EXT_DECL mint rgetmsg(mint msgnum, char *s, mint maxsize);
- MI_EXT_DECL mint rgetlmsg(int4 msgnum, char *s, mint maxsize, mint *msg_length);
- MI_EXT_DECL mint risnull(mint vtype, char *pcvar);
- MI_EXT_DECL mint rjulmdy(int4 jdate, int2 mdy[3]);
- MI_EXT_DECL mint rleapyear(mint year);
- MI_EXT_DECL mint rmdyjul(int2 mdy[3], int4 *jdate);
- MI_EXT_DECL mint rsetnull(mint vtype, char *pcvar);
- MI_EXT_DECL mint rstod(char *str, double *val);
- MI_EXT_DECL mint rstol(char *s, mlong *val);
- MI_EXT_DECL mint rstrdate(char *str, int4 *jdate);
- MI_EXT_DECL mint ifx_strdate(char *str, int4 *jdate, char db_century);
- MI_EXT_DECL void rtoday(int4 *today);
- #if MI_PTR_SIZE == 64 /* 64-bit pointer */
- MI_EXT_DECL mintptr rtypalign(mintptr offset, mint type);
- #else /* 32-bit pointer */
- MI_EXT_DECL mint rtypalign(mint offset, mint type);
- #endif /* MI_PTR_SIZE == 64 */
- MI_EXT_DECL mint rtypmsize(mint type, mint len);
- MI_EXT_DECL char *rtypname(mint type);
- MI_EXT_DECL mint rtypwidth(mint type, mint len);
- MI_EXT_DECL mint ifx_int8cmp(ifx_int8_t *op1, ifx_int8_t *op2);
- MI_EXT_DECL mint ifx_int8cvlong(int4 lng, ifx_int8_t *int8p);
- MI_EXT_DECL mint ifx_int8tolong(ifx_int8_t *int8p, int4 *lngp);
- MI_EXT_DECL mint ifx_int8toint4(ifx_int8_t *int8p, int4 *lngp);
- MI_EXT_DECL mint ifx_int8cvint(mint in, ifx_int8_t *int8p);
- MI_EXT_DECL mint ifx_int8toint(ifx_int8_t *int8p, mint *intp);
- MI_EXT_DECL mint ifx_int8toint2(ifx_int8_t *int8p, int2 *intp);
- MI_EXT_DECL mint ifx_int8cvasc(char *cp, mint len, ifx_int8_t *int8p);
- MI_EXT_DECL mint ifx_int8toasc(ifx_int8_t *int8p, char *cp, mint len);
- MI_EXT_DECL mint ifx_int8cvdec(dec_t *decp, ifx_int8_t *int8p);
- MI_EXT_DECL mint ifx_int8todec(ifx_int8_t *int8p, dec_t *decp);
- MI_EXT_DECL mint ifx_int8cvdbl(double dbl, ifx_int8_t *int8p);
- MI_EXT_DECL mint ifx_int8todbl(ifx_int8_t *int8p, double *dblp);
- MI_EXT_DECL mint ifx_int8cvflt(double flt, ifx_int8_t *int8p);
- MI_EXT_DECL mint ifx_int8toflt(ifx_int8_t *int8p, float *fltp);
- MI_EXT_DECL mint deccvint8(ifx_int8_t *int8p, dec_t *decp);
- MI_EXT_DECL mint ifx_int8sub(ifx_int8_t *int8op1, ifx_int8_t *int8op2, ifx_int8_t *int8result);
- MI_EXT_DECL mint ifx_int8add(ifx_int8_t *int8op1, ifx_int8_t *int8op2, ifx_int8_t *int8result);
- MI_EXT_DECL mint ifx_int8mul(ifx_int8_t *int8op1, ifx_int8_t *int8op2, ifx_int8_t *int8result);
- MI_EXT_DECL mint ifx_int8div(ifx_int8_t *int8op1, ifx_int8_t *int8op2, ifx_int8_t *int8result);
- MI_EXT_DECL void ifx_int8copy(ifx_int8_t *sint8p, ifx_int8_t *dint8p);
- #ifndef NOBIGINT
- MI_EXT_DECL mint biginttoint2(const bigint bigintv, int2 *int2p);
- MI_EXT_DECL mint bigintcvint2(const int2 int2v, bigint *bigintp);
- MI_EXT_DECL mint biginttoint4(const bigint bigintv, int4 *int4p);
- MI_EXT_DECL mint bigintcvint4(const int4 int4v, bigint *bigintp);
- MI_EXT_DECL mint biginttoasc(const bigint bigintv, char *cp, mint len, mint base);
- MI_EXT_DECL mint bigintcvasc(const char *cp, mint len, bigint *bigintp);
- MI_EXT_DECL mint bigintcvdec(const dec_t *decp, bigint *bigintp);
- MI_EXT_DECL mint biginttodec(const bigint bigintv, dec_t *decp);
- MI_EXT_DECL mint biginttodbl(const bigint bigintv,double *dbl);
- MI_EXT_DECL mint bigintcvdbl(const double dbl, bigint *bigintp);
- MI_EXT_DECL mint biginttoflt(const bigint bigintv, float *fltp);
- MI_EXT_DECL mint bigintcvflt(const double dbl, bigint *bigintp);
- MI_EXT_DECL mint bigintcvifx_int8(const ifx_int8_t *int8p, bigint *bigintp);
- MI_EXT_DECL void biginttoifx_int8(const bigint bigintv, ifx_int8_t *int8p);
- #endif /* NOBIGINT */
- MI_EXT_DECL mint sqlbreak(void);
- MI_EXT_DECL char *ifx_getcur_conn_name(void);
- MI_EXT_DECL mint sqldetach(void);
- MI_EXT_DECL mint sqlexit(void);
- MI_EXT_DECL mint sqlstart(void);
- MI_EXT_DECL void sqlsignal(mint sigvalue, void (*ldv)(void), mint mode);
- MI_EXT_DECL mint sqlbreakcallback(int4 timeout, void(*)(mint));
- /* PAM callback function */
- MI_EXT_DECL mint ifx_pam_callback(mint (*callbackfunc_ptr)(char *challenge,
- char *response, mint msg_style));
- MI_EXT_DECL mint ifx_cl_dealloc(ifx_collection_t **collection);
- MI_EXT_DECL mint ifx_xactevent(void *);
- MI_EXT_DECL mint ifx_getserowner(char *serowner);
- MI_EXT_DECL mint ifx_isius(void);
- MI_EXT_DECL char * ifx_get_msg_param(void);
- /*
- * Set of ifx_var_* functions for Fixed and Var Binary host vars.
- */
- MI_EXT_DECL mint ifx_var_flag(void **variable, int2 alloc_flag);
- MI_EXT_DECL mint ifx_var_alloc(void **variable, int4 size);
- MI_EXT_DECL mint ifx_var_dealloc(void **variable);
- MI_EXT_DECL mint ifx_var_setdata(void **variable, char *data, int4 size);
- MI_EXT_DECL mint ifx_var_isnull(void **variable);
- MI_EXT_DECL mint ifx_var_setnull(void **variable, mint flag);
- MI_EXT_DECL mint ifx_var_setlen(void **variable, int4 size);
- MI_EXT_DECL void *ifx_var_getdata(void **variable);
- MI_EXT_DECL mint ifx_var_init(void **variable);
- MI_EXT_DECL mint ifx_var_getlen(void **variable);
- MI_EXT_DECL mint ifx_lvar_alloc(mint alloc);
- /*
- * Set of ifx_lo_* accessors for opaque data types:
- * - ifx_lo_create_spec_t
- * - ifx_lo_stat_t
- *
- * See also: locator.h for description of possible values for arguments
- */
- /* smartblob create spec SET accessors: */
- MI_EXT_DECL mint ifx_lo_specset_flags(ifx_lo_create_spec_t *cspec, mint flags);
- MI_EXT_DECL mint ifx_lo_specset_def_open_flags(ifx_lo_create_spec_t *cspec,
- mint def_open_flags);
- MI_EXT_DECL mint ifx_lo_specset_estbytes(ifx_lo_create_spec_t *cspec,
- ifx_int8_t *size);
- MI_EXT_DECL mint ifx_lo_specset_maxbytes(ifx_lo_create_spec_t *cspec,
- ifx_int8_t *size);
- MI_EXT_DECL mint ifx_lo_specset_extsz(ifx_lo_create_spec_t *cspec, mint n);
- MI_EXT_DECL mint ifx_lo_specset_sbspace(ifx_lo_create_spec_t *cspec, const char *str);
- /* smartblob create spec GET accessors: */
- MI_EXT_DECL mint ifx_lo_specget_flags(ifx_lo_create_spec_t *cspec);
- MI_EXT_DECL mint ifx_lo_specget_def_open_flags(ifx_lo_create_spec_t *cspec);
- MI_EXT_DECL mint ifx_lo_specget_estbytes(ifx_lo_create_spec_t *cspec,
- ifx_int8_t *size);
- MI_EXT_DECL mint ifx_lo_specget_maxbytes(ifx_lo_create_spec_t *cspec,
- ifx_int8_t *size);
- MI_EXT_DECL mint ifx_lo_specget_extsz(ifx_lo_create_spec_t *cspec);
- MI_EXT_DECL mint ifx_lo_specget_sbspace(ifx_lo_create_spec_t *cspec,
- char *str, mint len);
- /* smartblob stat GET accessors: */
- MI_EXT_DECL mint ifx_lo_stat_size(ifx_lo_stat_t *lostat, ifx_int8_t *size);
- MI_EXT_DECL mint ifx_lo_stat_uid(ifx_lo_stat_t *lostat);
- MI_EXT_DECL mint ifx_lo_stat_atime(ifx_lo_stat_t *lostat);
- MI_EXT_DECL mint ifx_lo_stat_mtime_sec(ifx_lo_stat_t *lostat);
- MI_EXT_DECL mint ifx_lo_stat_mtime_usec(ifx_lo_stat_t *lostat);
- MI_EXT_DECL mint ifx_lo_stat_ctime(ifx_lo_stat_t *lostat);
- MI_EXT_DECL mint ifx_lo_stat_refcnt(ifx_lo_stat_t *lostat);
- MI_EXT_DECL ifx_lo_create_spec_t *ifx_lo_stat_cspec(ifx_lo_stat_t *lostat);
- /* smartblob spec and stat destructors: */
- MI_EXT_DECL mint ifx_lo_spec_free(ifx_lo_create_spec_t *cspec);
- MI_EXT_DECL mint ifx_lo_stat_free(ifx_lo_stat_t *lostat);
- /*
- * Set of ifx_lo_ functions for support of Large Objects
- */
- MI_EXT_DECL mint ifx_lo_col_info(char *column_name,ifx_lo_create_spec_t *create_spec);
- MI_EXT_DECL mint ifx_lo_def_create_spec(ifx_lo_create_spec_t **cspec);
- MI_EXT_DECL mint ifx_lo_create(ifx_lo_create_spec_t *create_spec, mint flags,
- ifx_lo_t *loptr, mint *error);
- MI_EXT_DECL mint ifx_lo_open(ifx_lo_t *loptr, mint flags, mint *error);
- MI_EXT_DECL mint ifx_lo_close(mint lofd);
- MI_EXT_DECL mint ifx_lo_seek(mint lofd, ifx_int8_t *off, mint whence,
- ifx_int8_t *seek_pos);
- MI_EXT_DECL mint ifx_lo_lock(mint lofd, ifx_int8_t *off, mint whence,
- ifx_int8_t *range, mint lockmode);
- MI_EXT_DECL mint ifx_lo_unlock(mint lofd, ifx_int8_t *off, mint whence,
- ifx_int8_t *range);
- MI_EXT_DECL mint ifx_lo_tell(mint lofd, ifx_int8_t *seek_pos);
- MI_EXT_DECL mint ifx_lo_truncate(mint lofd, ifx_int8_t *off);
- MI_EXT_DECL mint ifx_lo_filename(ifx_lo_t *loptr, char *fname,
- char *result, mint result_buffer_nbytes);
- MI_EXT_DECL mint ifx_lo_alter(ifx_lo_t *loptr, ifx_lo_create_spec_t *create_spec);
- MI_EXT_DECL mint ifx_lo_stat(mint lofd, ifx_lo_stat_t **lostat);
- MI_EXT_DECL mint ifx_lo_read(mint lofd, char *buf, mint nbytes, mint *error);
- MI_EXT_DECL mint ifx_lo_readwithseek(mint lofd, char *buf, mint nbytes,
- ifx_int8_t *off, mint whence, mint *error);
- MI_EXT_DECL mint ifx_lo_write(mint lofd, char *buf, mint nbytes, mint *error);
- MI_EXT_DECL mint ifx_lo_writewithseek(mint lofd, char *buf, mint nbytes,
- ifx_int8_t *off, mint whence, mint *error);
- MI_EXT_DECL mint ifx_lo_copy_to_lo(mint lofd, char *fname, mint flags);
- MI_EXT_DECL mint ifx_lo_copy_to_file(ifx_lo_t *loptr, char *fname, mint flags,
- char *result);
- MI_EXT_DECL mint ifx_lo_to_buffer(ifx_lo_t *loptr, mint size, char **buffer,
- mint *error);
- MI_EXT_DECL mint ifx_lo_from_buffer(ifx_lo_t *loptr, mint size, char *buffer,
- mint *error);
- MI_EXT_DECL mint ifx_lo_release(ifx_lo_t *loptr);
- MI_EXT_DECL int4 ifx_lo_numbytes_written(void);
- MI_EXT_DECL void * ifx_alloc_conn_user(char *username, char *passwd);
- MI_EXT_DECL void ifx_free_conn_user(ifx_conn_t **);
- MI_EXT_DECL void * ifx_alloc_conn_cred(void *);
- MI_EXT_DECL void ifx_free_conn_cred(ifx_conn_t **);
- MI_EXT_DECL mint ifx_cl_card(ifx_collection_t *colt, mint *isnull);
- #ifdef _REENTRANT
- MI_EXT_DECL int4 * ifx_sqlcode(void);
- MI_EXT_DECL char * ifx_sqlstate(void);
- MI_EXT_DECL struct sqlca_s *ifx_sqlca(void);
- #endif /* _REENTRANT */
- #ifdef USEMEMCPY
- #ifndef byfill
- #define byfill(s, n, c) memset(s, c, n)
- #endif /* byfill */
- #endif /* USEMEMCPY */
- /*
- * This global variable FetBufSize (Fetch Buffer Size) will allow
- * the application to over-ride cursor->_SQCtbsize which dictates the
- * size of the buffer that holds the data that the BE will fill.
- */
- extern int2 FetBufSize;
- /* FetArrSize is used to indicate the array size in in Array Fetch */
- extern int2 FetArrSize;
- /* OptMsg is used in conjunction with env. var. OPTMSG to activate OPTMSG */
- extern int2 OptMsg;
- /*
- * Set of ifxcdc_ functions to support the CDC log capture API
- */
- MI_EXT_DECL mint ifxcdc_valisnull(char* inbuf, mint inbuflen, mint sqltype,
- short *indicator);
- #ifdef __cplusplus
- }
- #endif
- #endif /* _SQLHDR */
|