sybdb.h
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:33k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: sybdb.h,v $
  4.  * PRODUCTION Revision 1000.1  2003/11/17 22:11:32  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [ORIGINAL] Dev-tree R1.2
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
  10.  * Copyright (C) 1998-1999  Brian Bruns
  11.  *
  12.  * This library is free software; you can redistribute it and/or
  13.  * modify it under the terms of the GNU Library General Public
  14.  * License as published by the Free Software Foundation; either
  15.  * version 2 of the License, or (at your option) any later version.
  16.  *
  17.  * This library is distributed in the hope that it will be useful,
  18.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  20.  * Library General Public License for more details.
  21.  *
  22.  * You should have received a copy of the GNU Library General Public
  23.  * License along with this library; if not, write to the
  24.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  25.  * Boston, MA 02111-1307, USA.
  26.  */
  27. #ifndef _sybdb_h_
  28. #define _sybdb_h_
  29. #include "tds.h"
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #if 0
  33. }
  34. #endif
  35. #endif
  36. static char  rcsid_sybdb_h [ ] =
  37. "$Id: sybdb.h,v 1000.1 2003/11/17 22:11:32 gouriano Exp $";
  38. static void *no_unused_sybdb_h_warn[]={rcsid_sybdb_h, no_unused_sybdb_h_warn};
  39. #ifdef FALSE
  40. #undef FALSE
  41. #endif
  42. #ifdef TRUE
  43. #undef TRUE
  44. #endif
  45. #define FALSE 0
  46. #define TRUE  1
  47. #define DBSAVE   1
  48. #define DBNOSAVE 0
  49. #define DBNOERR  -1
  50. #define INT_EXIT   0
  51. #define INT_CONTINUE 1
  52. #define INT_CANCEL 2
  53. #define INT_TIMEOUT 3
  54. /* serverity levels, gleaned from google */
  55. #define EXINFO       1
  56. #define EXUSER       2
  57. #define EXNONFATAL   3
  58. #define EXCONVERSION 4
  59. #define EXSERVER     5
  60. #define EXTIME       6
  61. #define EXPROGRAM    7
  62. #define EXRESOURCE   8
  63. #define EXCOMM       9
  64. #define DBMAXNUMLEN 33
  65. #define MAXNAME     30
  66. #define DBVERSION_UNKNOWN 0
  67. #define DBVERSION_46      1
  68. #define DBVERSION_100     2
  69. #define DBVERSION_42      3
  70. #define DBVERSION_70      4
  71. #define DBVERSION_80      5
  72. #define SYBAOPCNT  0x4b
  73. #define SYBAOPCNTU 0x4c
  74. #define SYBAOPSUM  0x4d
  75. #define SYBAOPSUMU 0x4e
  76. #define SYBAOPAVG  0x4f
  77. #define SYBAOPAVGU 0x50
  78. #define SYBAOPMIN  0x51
  79. #define SYBAOPMAX  0x52
  80. #define DBTXPLEN 16
  81. #define BCPMAXERRS 1
  82. #define BCPFIRST 2
  83. #define BCPLAST 3
  84. #define BCPBATCH 4
  85. #define BCPLABELED 5
  86. #define BCPHINTS 6
  87. typedef int  RETCODE;
  88. typedef void  DBCURSOR;
  89. typedef void  DBXLATE;
  90. typedef void  DBSORTORDER;
  91. typedef void  DBLOGINFO;
  92. typedef void *DBVOIDPTR;
  93. typedef short  SHORT;
  94. typedef unsigned short USHORT;
  95. typedef int (*INTFUNCPTR)();
  96. #ifndef __INCvxWorksh
  97. /* VxWorks already defines STATUS and BOOL. Compiler gets mad if you 
  98. ** redefine them. */
  99. /* __INCvxWorksh will get #defined by std. include files included from tds.h
  100. */
  101. #ifdef STATUS
  102. /* On DU4.0d we get a conflicting STATUS definition from arpa/nameser.h
  103.    when _REENTRANT is defined.
  104. */
  105. #undef STATUS
  106. #endif
  107. typedef int STATUS;
  108. typedef unsigned char BOOL ;
  109. #endif
  110. typedef unsigned char DBBOOL ;
  111. typedef TDS_CHAR DBCHAR ;
  112. typedef unsigned char DBTINYINT ;
  113. typedef TDS_SMALLINT DBSMALLINT ;
  114. typedef TDS_INT DBINT ;
  115. typedef unsigned char DBBINARY ;
  116. typedef TDS_REAL DBREAL ;
  117. typedef TDS_FLOAT DBFLT8  ;
  118. typedef unsigned short DBUSMALLINT ;
  119. typedef TDS_NUMERIC DBNUMERIC ;
  120. typedef TDS_MONEY DBMONEY ;
  121. typedef TDS_MONEY4 DBMONEY4 ;
  122. typedef TDS_DATETIME DBDATETIME ;
  123. typedef TDS_DATETIME4 DBDATETIME4 ;
  124. #ifdef MSDBLIB
  125. #define SQLCHAR SYBCHAR
  126. #endif
  127. typedef struct {
  128. void *tds_login ;
  129. } LOGINREC;
  130. typedef unsigned char BYTE;
  131. typedef struct  dbtypeinfo
  132. {
  133.         DBINT   precision;
  134.         DBINT   scale;
  135. } DBTYPEINFO;
  136. typedef struct tag_DBPROC_ROWBUF
  137. {
  138.    int      buffering_on;    /* (boolean) is row buffering turned on?     */
  139.    int      first_in_buf;    /* result set row number of first row in buf */
  140.    int      next_row;        /* result set row number of next row         */
  141.    int      newest;          /* index of most recent item in queue        */
  142.    int      oldest;          /* index of least recent item in queue       */
  143.    int      elcount;         /* max element count that buffer can hold    */
  144.    int      element_size;    /* size in bytes of each element in queue    */
  145.    int      rows_in_buf;     /* # of rows currently in buffer             */
  146. #ifdef NCBI_FTDS
  147.    int      rows_offset;
  148. #endif
  149.    void    *rows;            /* pointer to the row storage                */
  150. } DBPROC_ROWBUF;
  151. typedef struct {
  152. int     host_column;
  153.     void    *host_var;
  154. int     datatype;
  155. int     prefix_len;
  156. DBINT   column_len;
  157. BYTE *terminator;
  158. int     term_len;
  159.     int     tab_colnum;
  160. } BCP_HOSTCOLINFO;
  161. typedef struct {
  162. int          tab_colnum;
  163. char      db_name[256]; /* column name */
  164. TDS_SMALLINT db_minlen;
  165. TDS_SMALLINT db_maxlen;
  166. TDS_SMALLINT db_colcnt; /* I dont know what this does */
  167. TDS_TINYINT  db_type;
  168. TDS_TINYINT  db_type_save;
  169. TDS_SMALLINT db_usertype;
  170. TDS_TINYINT  db_varint_size;
  171. TDS_INT  db_length; /* size of field according to database */
  172. TDS_TINYINT  db_nullable;
  173. TDS_TINYINT  db_status;
  174. TDS_SMALLINT db_offset;
  175. TDS_TINYINT  db_default;
  176. TDS_TINYINT  db_prec;
  177. TDS_TINYINT  db_scale;
  178.     TDS_SMALLINT db_flags;
  179. TDS_INT  db_size; 
  180. TDS_TINYINT  db_unicodedata;
  181.     char         db_collate[5];
  182. long data_size;
  183. BYTE *data;
  184. int     txptr_offset;
  185. } BCP_COLINFO;
  186. typedef struct {
  187.    TDSSOCKET   *tds_socket ;
  188.    
  189.    DBPROC_ROWBUF   row_buf;
  190.    
  191.    int             noautofree;
  192.    int             more_results; /* boolean.  Are we expecting results? */
  193.    BYTE           *user_data;   /* see dbsetuserdata() and dbgetuserdata() */
  194.    unsigned char  *dbbuf; /* is dynamic!                   */
  195.    int             dbbufsz;
  196.    int             empty_res_hack;
  197.    TDS_INT         text_size;   
  198.    TDS_INT         text_sent;
  199.    TDS_CHAR        *bcp_hostfile;
  200.    TDS_CHAR        *bcp_errorfile;
  201.    TDS_CHAR        *bcp_tablename;
  202.    TDS_CHAR        *bcp_insert_stmt;
  203.    TDS_INT         bcp_direction;
  204.    TDS_INT         bcp_colcount;
  205.    TDS_INT         host_colcount;
  206.    BCP_COLINFO     **bcp_columns;
  207.    BCP_HOSTCOLINFO **host_columns;
  208.    TDS_INT         firstrow;
  209.    TDS_INT         lastrow;
  210.    TDS_INT         maxerrs;
  211.    TDS_INT         bcpbatch;
  212.    TDS_INT         sendrow_init;
  213.    TDS_INT         var_cols;
  214. #ifdef NCBI_FTDS
  215.    TDS_INT         curr_text_col;
  216. #endif
  217.    DBTYPEINFO      typeinfo;
  218.    unsigned char   avail_flag;
  219. #ifdef NCBI_FTDS
  220.     char*          bcp_hint;
  221. #endif
  222. } DBPROCESS;
  223. typedef struct dbdaterec
  224. {
  225. #ifndef MSDBLIB
  226. DBINT dateyear;
  227. DBINT datemonth;
  228. DBINT datedmonth;
  229. DBINT datedyear;
  230. DBINT datedweek;
  231. DBINT datehour;
  232. DBINT dateminute;
  233. DBINT datesecond;
  234. DBINT datemsecond;
  235. DBINT datetzone;
  236. #else
  237. DBINT year;
  238. DBINT month;
  239. DBINT day;
  240. DBINT dayofyear;
  241. DBINT weekday;
  242. DBINT hour;
  243. DBINT minute;
  244. DBINT second;
  245. DBINT millisecond;
  246. DBINT tzone;
  247. #endif
  248. } DBDATEREC;
  249. typedef int (*EHANDLEFUNC) (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
  250. typedef int (*MHANDLEFUNC) (DBPROCESS *dbproc, int msgno, int msgstate, int severity, char *msgtext, char *srvname, char *proc, int line);
  251. enum {
  252. DBPADOFF,
  253. DBPADON
  254. };
  255. /* a large list of options, DBTEXTSIZE is needed by sybtcl */
  256. #define DBPARSEONLY    0
  257. #define DBESTIMATE     1
  258. #define DBSHOWPLAN     2
  259. #define DBNOEXEC       3
  260. #define DBARITHIGNORE  4
  261. #define DBNOCOUNT      5
  262. #define DBARITHABORT   6
  263. #define DBTEXTLIMIT    7
  264. #define DBBROWSE       8
  265. #define DBOFFSET       9
  266. #define DBSTAT        10
  267. #define DBERRLVL      11
  268. #define DBCONFIRM     12
  269. #define DBSTORPROCID  13
  270. #define DBBUFFER      14
  271. #define DBNOAUTOFREE  15
  272. #define DBROWCOUNT    16
  273. #define DBTEXTSIZE    17
  274. #define DBNATLANG     18
  275. #define DBDATEFORMAT  19
  276. #define DBPRPAD       20
  277. #define DBPRCOLSEP    21
  278. #define DBPRLINELEN   22
  279. #define DBPRLINESEP   23
  280. #define DBLFCONVERT   24
  281. #define DBDATEFIRST   25
  282. #define DBCHAINXACTS  26
  283. #define DBFIPSFLAG    27
  284. #define DBISOLATION   28
  285. #define DBAUTH        29
  286. #define DBIDENTITY    30
  287. #define DBNUMOPTIONS  31
  288. #define DBPRPADON      1
  289. #define DBPRPADOFF     0
  290. /* dbpoll() result codes, sybtcl needs DBRESULT */
  291. #define DBRESULT       1
  292. #define DBNOTIFICATION 2
  293. #define DBTIMEOUT      3
  294. #define DBINTERRUPT    4
  295. /* more sybtcl needs: */
  296. #define DBTXTSLEN    8
  297. /* bind types */
  298. #define CHARBIND          0
  299. #define STRINGBIND        1
  300. #define NTBSTRINGBIND     2
  301. #define VARYCHARBIND      3
  302. #define TINYBIND          6
  303. #define SMALLBIND         7
  304. #define INTBIND           8
  305. #define FLT8BIND          9
  306. #define REALBIND          10
  307. #define DATETIMEBIND      11
  308. #define SMALLDATETIMEBIND 12
  309. #define MONEYBIND         13
  310. #define SMALLMONEYBIND    14
  311. #define BINARYBIND        15
  312. #define BITBIND           16
  313. #define NUMERICBIND       17
  314. #define DECIMALBIND       18
  315. #define DBPRCOLSEP  21
  316. #define DBPRLINELEN 22
  317. #define DBRPCRETURN 1
  318. #define REG_ROW         -1
  319. #define MORE_ROWS       -1
  320. #define NO_MORE_ROWS    -2
  321. #define BUF_FULL        -3
  322. #define NO_MORE_RESULTS 2
  323. #define SUCCEED         1
  324. #define FAIL            0
  325. #define DB_IN  1
  326. #define DB_OUT 2
  327. #define DBSINGLE 0
  328. #define DBDOUBLE 1
  329. #define DBBOTH   2
  330. DBBOOL db12hour(DBPROCESS *dbprocess, char *language);
  331. BYTE *dbadata(DBPROCESS *dbproc, int computeid, int column);
  332. DBINT dbadlen(DBPROCESS *dbproc, int computeid, int column);
  333. RETCODE dbaltbind(DBPROCESS *dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr);
  334. RETCODE dbaltbind_ps(DBPROCESS *dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr, DBTYPEINFO *typeinfo);
  335. int dbaltcolid(DBPROCESS *dbproc, int computeid, int column);
  336. RETCODE dbaltlen(DBPROCESS *dbproc, int computeid, int column);
  337. int dbaltop(DBPROCESS *dbproc, int computeid, int column);
  338. int dbalttype(DBPROCESS *dbproc, int computeid, int column);
  339. RETCODE dbaltutype(DBPROCESS *dbproc, int computeid, int column);
  340. RETCODE dbanullbind(DBPROCESS *dbprocess, int computeid, int column, DBINT *indicator);
  341. RETCODE dbbind(DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr);
  342. RETCODE dbbind_ps(DBPROCESS *dbprocess, int column, int vartype, DBINT varlen, BYTE *varaddr, DBTYPEINFO *typeinfo);
  343. int dbbufsize(DBPROCESS *dbprocess);
  344. BYTE *dbbylist(DBPROCESS *dbproc, int computeid, int *size);
  345. RETCODE dbcancel(DBPROCESS *dbproc);
  346. RETCODE dbcanquery(DBPROCESS *dbproc);
  347. char *dbchange(DBPROCESS *dbprocess);
  348. DBBOOL dbcharsetconv(DBPROCESS *dbprocess);
  349. void dbclose(DBPROCESS *dbproc);
  350. void dbclrbuf(DBPROCESS *dbproc, DBINT n);
  351. RETCODE dbclropt(DBPROCESS *dbproc, int option, char *param);
  352. RETCODE dbcmd(DBPROCESS *dbproc, char *cmdstring);
  353. RETCODE dbcmdrow(DBPROCESS *dbproc);
  354. #define DBCMDROW(x) dbcmdrow((x))
  355. DBBOOL dbcolbrowse(DBPROCESS *dbprocess, int colnum);
  356. DBINT dbcollen(DBPROCESS *dbproc, int column);
  357. char *dbcolname(DBPROCESS *dbproc, int column);
  358. char *dbcolsource(DBPROCESS *dbproc, int colnum);
  359. int dbcoltype(DBPROCESS *dbproc, int column);
  360. int dbcolutype(DBPROCESS *dbproc, int column);
  361. DBTYPEINFO *dbcoltypeinfo(DBPROCESS *dbproc, int column);
  362. DBINT dbcolutype(DBPROCESS *dbprocess, int column);
  363. DBINT dbconvert(DBPROCESS *dbproc, int srctype, BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen);
  364. DBINT dbconvert_ps(DBPROCESS *dbprocess, int srctype, BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo);
  365. DBINT dbcount(DBPROCESS *dbproc);
  366. #define DBCOUNT(x) dbcount((x))
  367. int dbcurcmd(DBPROCESS *dbproc);
  368. #define DBCURCMD(x) dbcurcmd((x))
  369. DBINT dbcurrow(DBPROCESS *dbproc);
  370. #define DBCURROW(x) dbcurrow((x))
  371. RETCODE dbcursor(DBCURSOR *hc, DBINT optype, DBINT bufno, BYTE *table, BYTE *values);
  372. RETCODE dbcursorbind(DBCURSOR *hc, int col, int vartype, DBINT varlen, DBINT *poutlen, BYTE *pvaraddr, DBTYPEINFO *typeinfo);
  373. void dbcursorclose(DBCURSOR *hc);
  374. RETCODE dbcursorcolinfo(DBCURSOR *hc, DBINT column, DBCHAR *colname, DBINT *coltype, DBINT *collen, DBINT *usertype);
  375. RETCODE dbcursorfetch(DBCURSOR *hc, DBINT fetchtype, DBINT rownum);
  376. RETCODE dbcursorinfo(DBCURSOR *hc, DBINT *ncols, DBINT *nrows);
  377. DBCURSOR *dbcursoropen(DBPROCESS *dbprocess, BYTE *stmt, SHORT scollopt, SHORT concuropt, USHORT nrows, DBINT *pstatus);
  378. BYTE *dbdata(DBPROCESS *dbproc, int column);
  379. int dbdate4cmp(DBPROCESS *dbprocess, DBDATETIME4 *d1, DBDATETIME4 *d2);
  380. RETCODE dbdate4zero(DBPROCESS *dbprocess, DBDATETIME4 *d1);
  381. RETCODE dbdatechar(DBPROCESS *dbprocess, char *buf, int datepart, int value);
  382. RETCODE dbdatecmp(DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2);
  383. RETCODE dbdatecrack(DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *dt);
  384. int dbdatename(DBPROCESS *dbprocess, char *buf, int date, DBDATETIME *datetime);
  385. char *dateorder(DBPROCESS *dbprocess, char *language);
  386. DBINT dbdatepart(DBPROCESS *dbprocess, int datepart, DBDATETIME *datetime);
  387. RETCODE dbdatezero(DBPROCESS *dbprocess, DBDATETIME *d1);
  388. DBINT dbdatlen(DBPROCESS *dbproc, int column);
  389. char *dbdayname(DBPROCESS *dbprocess, char *language, int daynum);
  390. DBBOOL dbdead(DBPROCESS *dbproc);
  391. #define DBDEAD(x) dbdead((x))
  392. EHANDLEFUNC dberrhandle(EHANDLEFUNC handler);
  393. void dbexit(void);
  394. RETCODE dbfcmd(DBPROCESS *dbproc, char *fmt, ...);
  395. DBINT dbfirstrow(DBPROCESS *dbproc);
  396. #define DBFIRSTROW(x) dbfirstrow((x))
  397. RETCODE dbfree_xlate(DBPROCESS *dbprocess, DBXLATE *xlt_tosrv, DBXLATE *clt_todisp);
  398. void dbfreebuf(DBPROCESS *dbproc);
  399. void dbfreequal(char *qualptr);
  400. RETCODE dbfreesort(DBPROCESS *dbprocess, DBSORTORDER *sortorder);
  401. char *dbgetchar(DBPROCESS *dbprocess, int n);
  402. char *dbgetcharset(DBPROCESS *dbprocess);
  403. RETCODE dbgetloginfo(DBPROCESS *dbprocess, DBLOGINFO **loginfo);
  404. int dbgetlusername(LOGINREC *login, BYTE *name_buffer, int buffer_len);
  405. int dbgetmaxprocs(void);
  406. char *dbgetnatlanf(DBPROCESS *dbprocess);
  407. int dbgetoff(DBPROCESS *dbprocess, DBUSMALLINT offtype, int startfrom);
  408. int dbgetpacket(DBPROCESS *dbproc);
  409. RETCODE dbgetrow(DBPROCESS *dbproc, DBINT row);
  410. int DBGETTIME(void);
  411. BYTE *dbgetuserdata(DBPROCESS *dbproc);
  412. DBBOOL dbhasretstat(DBPROCESS *dbproc);
  413. RETCODE dbinit(void);
  414. int dbiordesc(DBPROCESS *dbproc);
  415. #define DBIORDESC(x) dbiordesc((x))
  416. int dbiowdesc(DBPROCESS *dbproc);
  417. #define DBIOWDESC(x) dbiowdesc((x))
  418. DBBOOL dbisavail(DBPROCESS *dbprocess);
  419. #define DBISAVAIL(x) dbisavail((x))
  420. DBBOOL dbisopt(DBPROCESS *dbproc, int option, char *param);
  421. DBINT dblastrow(DBPROCESS *dbproc);
  422. #define DBLASTROW(x) dblastrow((x))
  423. RETCODE dbload_xlate(DBPROCESS *dbprocess, char *srv_charset, char *clt_name, DBXLATE **xlt_tosrv, DBXLATE **xlt_todisp);
  424. DBSORTORDER *dbloadsort(DBPROCESS *dbprocess);
  425. LOGINREC *dblogin(void);
  426. void dbloginfree(LOGINREC *login);
  427. RETCODE dbmny4add(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum);
  428. RETCODE dbmny4cmp(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2);
  429. RETCODE dbmny4copy(DBPROCESS *dbprocess, DBMONEY4 *m1, DBMONEY4 *m2);
  430. RETCODE dbmny4divide(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *quotient);
  431. RETCODE dbmny4minus(DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest);
  432. RETCODE dbmny4mul(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *prod);
  433. RETCODE dbmny4sub(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff);
  434. RETCODE dbmny4zero(DBPROCESS *dbproc, DBMONEY4 *dest);
  435. RETCODE dbmnyadd(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *sum);
  436. RETCODE dbmnycmp(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2);
  437. RETCODE dbmnycopy(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest);
  438. RETCODE dbmnydec(DBPROCESS *dbproc, DBMONEY *mnyptr);
  439. RETCODE dbmnydivide(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *quotient);
  440. RETCODE dbmnydown(DBPROCESS *dbproc, DBMONEY *mnyptr, int divisor, int *remainder);
  441. RETCODE dbmnyinc(DBPROCESS *dbproc, DBMONEY *mnyptr);
  442. RETCODE dbmnyinit(DBPROCESS *dbproc, DBMONEY *mnyptr, int trim, DBBOOL *negative);
  443. RETCODE dbmnymaxneg(DBPROCESS *dbproc, DBMONEY *dest);
  444. RETCODE dbmnymaxpos(DBPROCESS *dbproc, DBMONEY *dest);
  445. RETCODE dbmnyminus(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest);
  446. RETCODE dbmnymul(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *prod);
  447. RETCODE dbmnydigit(DBPROCESS *dbprocess, DBMONEY *m1, DBCHAR *value, DBBOOL *zero);
  448. RETCODE dbmnyscale(DBPROCESS *dbproc, DBMONEY *dest, int multiplier, int addend);
  449. RETCODE dbmnysub(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *diff);
  450. RETCODE dbmnyzero(DBPROCESS *dbproc, DBMONEY *dest);
  451. char *dbmonthname(DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform);
  452. RETCODE dbmorecmds(DBPROCESS *dbproc);
  453. #define DBMORECMDS(x) dbmorecmds((x))
  454. RETCODE dbmoretext(DBPROCESS *dbproc, DBINT size, BYTE *text);
  455. MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler);
  456. char *dbname(DBPROCESS *dbproc);
  457. RETCODE dbnextrow(DBPROCESS *dbproc);
  458. RETCODE dbnpcreate(DBPROCESS *dbprocess);
  459. RETCODE dbnpdefine(DBPROCESS *dbprocess, DBCHAR *procedure_name, DBSMALLINT namelen);
  460. RETCODE dbnullbind(DBPROCESS *dbproc, int column, DBINT *indicator);
  461. int dbnumalts(DBPROCESS *dbproc, int computeid);
  462. int dbnumcols(DBPROCESS *dbproc);
  463. int dbnumcompute(DBPROCESS *dbprocess);
  464. int DBNUMORDERS(DBPROCESS *dbprocess);
  465. int dbnumrets(DBPROCESS *dbproc);
  466. DBPROCESS *tdsdbopen(LOGINREC *login, char *server);
  467. #define   dbopen(x,y) tdsdbopen((x),(y))
  468. int dbordercol(DBPROCESS *dbprocess, int order);
  469. RETCODE dbpoll(DBPROCESS *dbproc, long milliseconds, DBPROCESS **ready_dbproc, int *return_reason);
  470. void dbprhead(DBPROCESS *dbproc);
  471. RETCODE dbprrow(DBPROCESS *dbproc);
  472. char *dbprtype(int token);
  473. char *dbqual(DBPROCESS *dbprocess, int tabnum, char *tabname);
  474. DBBOOL DRBUF(DBPROCESS *dbprocess);
  475. DBINT dbreadpage(DBPROCESS *dbprocess, char *dbname, DBINT pageno, BYTE *buf);
  476. STATUS dbreadtext(DBPROCESS *dbproc, void *buf, DBINT bufsize);
  477. void dbrecftos(char *filename);
  478. RETCODE dbrecvpassthru(DBPROCESS *dbprocess, DBVOIDPTR *bufp);
  479. RETCODE dbregdrop(DBPROCESS *dbprocess, DBCHAR *procnm, DBSMALLINT namelen);
  480. RETCODE dbregexec(DBPROCESS *dbproc, DBUSMALLINT options);
  481. RETCODE dbreghandle(DBPROCESS *dbprocess, DBCHAR *procnm, DBSMALLINT namelen, INTFUNCPTR handler);
  482. RETCODE dbreginit(DBPROCESS *dbproc, DBCHAR *procedure_name, DBSMALLINT namelen);
  483. RETCODE dbreglist(DBPROCESS *dbproc);
  484. RETCODE dbregnowatch(DBPROCESS *dbprocess, DBCHAR *procnm, DBSMALLINT namelen);
  485. RETCODE dbregparam(DBPROCESS *dbproc, char *param_name, int type, DBINT datalen, BYTE *data);
  486. RETCODE dbregwatch(DBPROCESS *dbprocess, DBCHAR *procnm, DBSMALLINT namelen, DBUSMALLINT options);
  487. RETCODE dbregwatchlist(DBPROCESS *dbprocess);
  488. RETCODE dbresults(DBPROCESS *dbproc);
  489. BYTE *dbretdata(DBPROCESS *dbproc, int retnum);
  490. int dbretlen(DBPROCESS *dbproc, int retnum);
  491. char *dbretname(DBPROCESS *dbproc, int retnum);
  492. DBINT dbretstatus(DBPROCESS *dbproc);
  493. int dbrettype(DBPROCESS *dbproc, int retnum);
  494. RETCODE dbrows(DBPROCESS *dbproc);
  495. #define DBROWS(x) dbrows((x))
  496. STATUS dbrowtype(DBPROCESS *dbprocess);
  497. #define DBROWTYPE(x) dbrowtype((x))
  498. RETCODE dbrpcinit(DBPROCESS *dbproc, char *rpcname, DBSMALLINT options);
  499. RETCODE dbrpcparam(DBPROCESS *dbproc, char *paramname, BYTE status, int type, DBINT maxlen, DBINT datalen, BYTE *value);
  500. RETCODE dbrpcsend(DBPROCESS *dbproc);
  501. void dbrpwclr(LOGINREC *login);
  502. RETCODE dbrpwset(LOGINREC *login, char *srvname, char *password, int pwlen);
  503. RETCODE dbsafestr(DBPROCESS *dbproc, char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype);
  504. RETCODE *dbsechandle(DBINT type, INTFUNCPTR (*handler)());
  505. RETCODE dbsendpassthru(DBPROCESS *dbprocess, DBVOIDPTR bufp);
  506. char *dbservcharset(DBPROCESS *dbprocess);
  507. void dbsetavail(DBPROCESS *dbprocess);
  508. void dbsetbusy(DBPROCESS *dbprocess, INTFUNCPTR (*handler)());
  509. RETCODE dbsetdefcharset(char *charset);
  510. RETCODE dbsetdeflang(char *language);
  511. void dbsetidle(DBPROCESS *dbprocess, INTFUNCPTR (*handler)());
  512. void dbsetifile(char *filename);
  513. void dbsetinterrupt(DBPROCESS *dbproc, int (*ckintr)(void), int (*hndlintr)(void));
  514. RETCODE dbsetloginfo(LOGINREC *loginrec, DBLOGINFO *loginfo);
  515. RETCODE dbsetlogintime(int seconds);
  516. RETCODE dbsetmaxprocs(int maxprocs);
  517. RETCODE dbsetnull(DBPROCESS *dbprocess, int bindtype, int bindlen, BYTE *bindval);
  518. RETCODE dbsetopt(DBPROCESS *dbproc, int option, char *char_param, int int_param);
  519. STATUS dbsetrow(DBPROCESS *dbprocess, DBINT row);
  520. RETCODE dbsettime(int seconds);
  521. void dbsetuserdata(DBPROCESS *dbproc, BYTE *ptr);
  522. RETCODE dbsetversion(DBINT version);
  523. int dbspid(DBPROCESS *dbproc);
  524. RETCODE dbspr1row(DBPROCESS *dbproc, char *buffer, DBINT buf_len);
  525. DBINT dbspr1rowlen(DBPROCESS *dbproc);
  526. RETCODE dbsprhead(DBPROCESS *dbproc, char *buffer, DBINT buf_len);
  527. RETCODE dbsprline(DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char);
  528. RETCODE dbsqlexec(DBPROCESS *dbproc);
  529. RETCODE dbsqlok(DBPROCESS *dbproc);
  530. RETCODE dbsqlsend(DBPROCESS *dbproc);
  531. int dbstrbuild(DBPROCESS *dbprocess, char *buf, int size, char *text, char *fmt, ...);
  532. int dbstrcmp(DBPROCESS *dbprocess, char *s1, int l1, char *s2, int l2, DBSORTORDER *sort);
  533. RETCODE dbstrcpy(DBPROCESS *dbproc, int start, int numbytes, char *dest);
  534. int dbstrlen(DBPROCESS *dbproc);
  535. int dbstrsort(DBPROCESS *dbprocess, char *s1, int l1, char *s2, int l2, DBSORTORDER *sort);
  536. DBBOOL dbtabbrowse(DBPROCESS *dbprocess, int tabnum);
  537. int dbtabcount(DBPROCESS *dbprocess);
  538. char *dbtabname(DBPROCESS *dbprocess, int tabnum);
  539. char *dbtabsoruce(DBPROCESS *dbprocess, int colnum, int *tabnum);
  540. #define SYBEMEM         20010   /* Unable to allocate sufficient memory. */
  541. #define SYBESMSG        20018   
  542. #define SYBERPND        20019  
  543. #define SYBETIME        20003   /* SQL Server connection timed out. */
  544. #define SYBEABNC        20032   /* Attempt to bind to a non-existent column. */
  545. #define SYBENSIP        20045   /* Negative starting index passed to dbstrcpy().
  546.  */
  547. #define SYBECOFL        20049   /* Data-conversion resulted in overflow. */
  548. #define SYBECSYN        20050   /* Attempt to convert data stopped by syntax err
  549. or in source field. */
  550. #define SYBERDCN        20053   /* Requested data-conversion does not exist. */
  551. #define SYBECLOS        20056   /* Error in closing network connection. */
  552. #define SYBETTS          20066
  553. #define SYBEBDIO         20063
  554. #define SYBEBCVH         20083
  555. #define SYBEBIVI         20080
  556. #define SYBEBCBC         20081
  557. #define SYBEBCFO         20082
  558. #define SYBEBCPB         20078
  559. #define SYBEBCPN         20077
  560. #define SYBEBCPI         20076
  561. #define SYBEBCITBNM      20238
  562. #define SYBEBCITBLEN     20239
  563. #define SYBEBCBNPR       20230
  564. #define SYBEBCBPREF      20236
  565. #define SYBEVDPT         20079
  566. #define SYBEUNOP         20115  /* Unknown option passed to dbsetopt(). */
  567. #define SYBESPID         20154  /* Called dbspid() with a NULL dbproc. */
  568. #define SYBEBNUM         20214  /* Bad numbytes parameter passed to dbstrcpy(). 
  569. */
  570. #define SYBEBCPCTYP      20233
  571. #define SYBEBCHLEN       20235
  572. #define SYBEBCPREF       20237
  573. #define SYBEBCVLEN       20234
  574. #define SYBEBCUO         20084
  575. #define SYBEBUOE         20097  /* FIXME: I made up this number (not the name). 
  576. jkl */
  577. #define SYBEBUOF         20098
  578. #define SYBEBUDF         20102
  579. #define SYBEBIHC         20103
  580. #define SYBEBCUC         20085
  581. #define SYBEBUCE         20096  /* FIXME: I made up this number (not the name). 
  582. jkl */
  583. #define SYBEBUCF         20099
  584. #define SYBEIFNB         20065
  585. #define SYBEBCRE         20070
  586. #define SYBEBCNN         20073
  587. #define SYBEBBCI         20068
  588. #define BCPETTS          SYBETTS
  589. #define BCPEBDIO         SYBEBDIO
  590. #define BCPEBCVH         SYBEBCVH
  591. #define BCPEBIVI         SYBEBIVI
  592. #define BCPEBCBC         SYBEBCBC
  593. #define BCPEBCFO         SYBEBCFO
  594. #define BCPEBCPB         SYBEBCPB
  595. #define BCPEBCPN         SYBEBCPN
  596. #define BCPEBCPI         SYBEBCPI
  597. #define BCPEBCITBNM      SYBEBCITBNM
  598. #define BCPEBCITBLEN     SYBEBCITBLEN
  599. #define BCPEBCBNPR       SYBEBCBNPR
  600. #define BCPEBCBPREF      SYBEBCBPREF
  601. #define BCPEVDPT         SYBEVDPT
  602. #define BCPEBCPCTYP      SYBEBCPCTYP
  603. #define BCPEBCHLEN       SYBEBCHLEN
  604. #define BCPEBCPREF       SYBEBCPREF
  605. #define BCPEBCVLEN       SYBEBCVLEN
  606. #define BCPEBCUO         SYBEBCUO
  607. #define BCPEBUOF         SYBEBUOF
  608. #define BCPEBUDF         SYBEBUDF
  609. #define BCPEBIHC         SYBEBIHC
  610. #define BCPEBCUC         SYBEBCUC
  611. #define BCPEBUCF         SYBEBUCF
  612. #define BCPEIFNB         SYBEIFNB
  613. #define BCPEBCRE         SYBEBCRE
  614. #define BCPEBCNN         SYBEBCNN
  615. int DBTDS(DBPROCESS *dbprocess);
  616. DBINT dbtextsize(DBPROCESS *dbprocess);
  617. int dbtsnewlen(DBPROCESS *dbprocess);
  618. DBBINARY *dbtsnewval(DBPROCESS *dbprocess);
  619. RETCODE dbtsput(DBPROCESS *dbprocess, DBBINARY *newts, int newtslen, int tabnum, char *tabname);
  620. DBBINARY *dbtxptr(DBPROCESS *dbproc, int column);
  621. DBBINARY *dbtxtimestamp(DBPROCESS *dbproc, int column);
  622. DBBINARY *dbtxtsnewval(DBPROCESS *dbprocess);
  623. RETCODE dbtxtsput(DBPROCESS *dbprocess, DBBINARY newtxts, int colnum);
  624. RETCODE dbuse(DBPROCESS *dbproc, char *dbname);
  625. DBBOOL dbcarylen(DBPROCESS *dbprocess, int column);
  626. char *dbversion(void);
  627. DBBOOL dbwillconvert(int srctype, int desttype);
  628. RETCODE dbwritepage(DBPROCESS *dbprocess, char *dbname, DBINT pageno, DBINT size, BYTE *buf);
  629. RETCODE dbwritetext(DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text);
  630. int dbxlate(DBPROCESS *dbprocess, char *src, int srclen, char *dest, int destlen, DBXLATE *xlt, int *srcbytes_used, DBBOOL srcend, int status);
  631. /* LOGINREC manipulation */
  632. RETCODE dbsetlname(LOGINREC *login, char *value, int which);
  633. RETCODE dbsetlbool(LOGINREC *login, int value, int which);
  634. RETCODE dbsetlshort(LOGINREC *login, int value, int which);
  635. RETCODE dbsetllong(LOGINREC* login, long value, int which);
  636. #define DBSETHOST 1
  637. #define DBSETLHOST(x,y) dbsetlname((x), (y), DBSETHOST)
  638. #define DBSETUSER 2
  639. #define DBSETLUSER(x,y) dbsetlname((x), (y), DBSETUSER)
  640. #define DBSETPWD 3
  641. #define DBSETLPWD(x,y) dbsetlname((x), (y), DBSETPWD)
  642. #define DBSETHID 4 /* not implemented */
  643. #define DBSETLHID(x,y) dbsetlname((x), (y), DBSETHID)
  644. #define DBSETAPP 5
  645. #define DBSETLAPP(x,y) dbsetlname((x), (y), DBSETAPP)
  646. #define DBSETBCP 6
  647. #define BCP_SETL(x,y) dbsetlbool((x), (y), DBSETBCP)
  648. #define DBSETNATLANG 7
  649. #define DBSETLNATLANG(x,y) dbsetlname((x), (y), DBSETNATLANG)
  650. #define DBSETNOSHORT 8 /* not implemented */
  651. #define DBSETLNOSHORT(x,y) dbsetlbool((x), (y), DBSETNOSHORT)
  652. #define DBSETHIER 9 /* not implemented */
  653. #define DBSETLHIER(x,y) dbsetlshort((x), (y), DBSETHIER)
  654. #define DBSETCHARSET 10
  655. #define DBSETLCHARSET(x,y) dbsetlname((x), (y), DBSETCHARSET)
  656. #define DBSETPACKET 11
  657. #define DBSETLPACKET(x,y) dbsetllong((x), (y), DBSETPACKET)
  658. #define DBSETENCRYPT 12
  659. #define DBSETLENCRYPT(x,y) dbsetlbool((x), (y), DBSETENCRYPT)
  660. #define DBSETLABELED 13
  661. #define DBSETLLABELED(x,y) dbsetlbool((x), (y), DBSETLABELED)
  662. #define BCP_SETLABELED(x,y) dbsetlbool((x), (y), DBSETLABELED)
  663. extern RETCODE    bcp_init(DBPROCESS *dbproc, char *tblname, char *hfile, 
  664.                             char *errfile, int direction);
  665. extern RETCODE    bcp_collen(DBPROCESS *dbproc, DBINT varlen, 
  666.                               int table_column);
  667. extern RETCODE    bcp_columns(DBPROCESS *dbproc, int host_colcount);
  668. extern RETCODE    bcp_colfmt(DBPROCESS *dbproc, int host_colnum, 
  669.                               int host_type, int host_prefixlen, 
  670.                               DBINT host_collen, BYTE *host_term,
  671.                               int host_termlen, int table_colnum);
  672. extern RETCODE    bcp_colfmt_ps(DBPROCESS *dbproc, int host_colnum, 
  673.                                  int host_type, int host_prefixlen, 
  674.                                  DBINT host_collen, BYTE *host_term,
  675.                                  int host_termlen, int table_colnum, 
  676.                                  DBTYPEINFO *typeinfo);
  677. extern RETCODE    bcp_control(DBPROCESS *dbproc, int field, DBINT value);
  678. extern RETCODE    bcp_colptr(DBPROCESS *dbproc, BYTE *colptr,
  679.                               int table_column);
  680. extern DBBOOL     bcp_getl(LOGINREC *login);
  681. extern RETCODE    bcp_exec(DBPROCESS *dbproc, DBINT *rows_copied);
  682. extern RETCODE    bcp_readfmt(DBPROCESS *dbproc, char *filename);
  683. extern RETCODE    bcp_writefmt(DBPROCESS *dbproc, char *filename);
  684. extern RETCODE    bcp_sendrow(DBPROCESS *dbproc);
  685. extern RETCODE    bcp_moretext(DBPROCESS *dbproc, DBINT size, BYTE *text);
  686. extern int    bcp_batch(DBPROCESS *dbproc);
  687. extern int    bcp_done(DBPROCESS *dbproc);
  688. extern RETCODE    bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, 
  689.                             DBINT varlen, BYTE *terminator, int termlen, 
  690.                             int type, int table_column);
  691. extern RETCODE    dbmnyadd(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, 
  692.                             DBMONEY *sum);
  693. extern RETCODE    dbmnysub(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, 
  694.                             DBMONEY *diff);
  695. extern RETCODE    dbmnymul(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2,
  696.                             DBMONEY *prod);
  697. extern RETCODE    dbmnydivide(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2,
  698.                                DBMONEY *quotient);
  699. extern RETCODE    dbmnycmp(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2);
  700. extern RETCODE    dbmnyscale(DBPROCESS *dbproc, DBMONEY *dest,int multiplier,
  701.                               int addend);
  702. extern RETCODE    dbmnyzero(DBPROCESS *dbproc, DBMONEY *dest);
  703. extern RETCODE    dbmnymaxpos(DBPROCESS *dbproc, DBMONEY *dest);
  704. extern RETCODE    dbmnymaxneg(DBPROCESS *dbproc, DBMONEY *dest);
  705. extern RETCODE    dbmnyndigit(DBPROCESS *dbproc, DBMONEY *mnyptr,
  706.                                DBCHAR *value, DBBOOL *zero);
  707. extern RETCODE    dbmnyinit(DBPROCESS *dbproc,DBMONEY *mnyptr, int trim, 
  708.                              DBBOOL *negative);
  709. extern RETCODE    dbmnydown(DBPROCESS *dbproc,DBMONEY *mnyptr, int divisor, 
  710.                              int *remainder);
  711. extern RETCODE    dbmnyinc(DBPROCESS *dbproc,DBMONEY *mnyptr);
  712. extern RETCODE    dbmnydec(DBPROCESS *dbproc,DBMONEY *mnyptr);
  713. extern RETCODE    dbmnyminus(DBPROCESS *dbproc,DBMONEY *src, DBMONEY *dest);
  714. extern RETCODE    dbmny4cmp(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2);
  715. extern RETCODE    dbmny4minus(DBPROCESS *dbproc, DBMONEY4 *src, 
  716.                                DBMONEY4 *dest);
  717. extern RETCODE    dbmny4zero(DBPROCESS *dbproc, DBMONEY4 *dest);
  718. extern RETCODE    dbmny4add(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, 
  719.                              DBMONEY4 *sum);
  720. extern RETCODE    dbmny4sub(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2,
  721.                              DBMONEY4 *diff);
  722. extern RETCODE    dbmny4mul(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, 
  723.                              DBMONEY4 *prod);
  724. extern RETCODE    dbmny4divide(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2,
  725.                                 DBMONEY4 *quotient);
  726. extern RETCODE    dbmny4cmp(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2);
  727. extern RETCODE    dbdatecmp(DBPROCESS *dbproc, DBDATETIME *d1,
  728.                              DBDATETIME *d2);
  729. extern RETCODE    dbdatecrack(DBPROCESS *dbproc, DBDATEREC *dateinfo,
  730.                                DBDATETIME *datetime);
  731. extern void       dbrpwclr(LOGINREC *login);
  732. extern RETCODE    dbrpwset(LOGINREC *login, char *srvname, char *password, 
  733.                             int pwlen);
  734. extern void       build_xact_string(char *xact_name, char *service_name,
  735.                                      DBINT commid, char *result);
  736. extern RETCODE    remove_xact(DBPROCESS *connect, DBINT commid, int n);
  737. extern RETCODE    abort_xact(DBPROCESS *connect, DBINT commid);
  738. extern void       close_commit(DBPROCESS *connect);
  739. extern RETCODE    commit_xact(DBPROCESS *connect, DBINT commid);
  740. extern DBPROCESS *open_commit(LOGINREC *login, char *servername);
  741. extern RETCODE    scan_xact(DBPROCESS *connect, DBINT commid);
  742. extern DBINT      start_xact(DBPROCESS *connect, char *application_name,
  743.                               char *xact_name, int site_count);
  744. extern DBINT      stat_xact(DBPROCESS *connect, DBINT commid);
  745. extern int        dbspid(DBPROCESS *dbproc);
  746. extern  char      *dbmonthname(DBPROCESS *dbproc,char *language,int monthnum,
  747.                                DBBOOL shortform);
  748. extern  char      *dbname(DBPROCESS *dbproc);
  749. extern  BYTE      *dbdata(DBPROCESS *dbproc,int column);
  750. extern  char      *dbcolname(DBPROCESS *dbproc,int column);
  751. extern  DBBINARY  *dbtxptr(DBPROCESS *dbproc,int column);
  752. extern  DBBINARY  *dbtxtimestamp(DBPROCESS *dbproc, int column);
  753. extern  RETCODE    dbwritetext(DBPROCESS *dbproc,char *objname, 
  754. DBBINARY *textptr, DBTINYINT textptrlen, 
  755. DBBINARY *timestamp, DBBOOL log, 
  756.                                         DBINT size, BYTE *text);
  757. extern  void       dbfreebuf(DBPROCESS *dbproc);
  758. extern  RETCODE    dbcmd(DBPROCESS *dbproc, char *cmdstring);
  759. extern  RETCODE    dbsqlexec(DBPROCESS *dbproc);
  760. extern  int        dbnumcols(DBPROCESS *dbproc);
  761. extern  DBINT      dbcollen(DBPROCESS *dbproc, int column);
  762. extern  char      *dbprtype(int token);
  763. extern  RETCODE    dbbind(DBPROCESS *dbproc, int column, int vartype, 
  764.                           DBINT varlen, BYTE *varaddr);
  765. extern  RETCODE    dbnullbind(DBPROCESS *dbproc, int column, DBINT *indicator);
  766. extern  RETCODE    dbsqlsend(DBPROCESS *dbproc);
  767. extern  RETCODE    dbaltutype(DBPROCESS *dbproc, int computeid, int column);
  768. extern  RETCODE    dbaltlen(DBPROCESS *dbproc, int computeid, int column);
  769. extern  RETCODE    dbpoll(DBPROCESS *dbproc, long milliseconds,
  770.                           DBPROCESS **ready_dbproc, int *return_reason);
  771. extern  DBINT dbspr1rowlen(DBPROCESS *dbproc);
  772. extern  RETCODE dbspr1row(DBPROCESS *dbproc, char *buffer, DBINT buf_len);
  773. extern  RETCODE dbsprline(DBPROCESS *dbproc,char *buffer, DBINT buf_len, 
  774. DBCHAR line_char);
  775. extern  RETCODE dbsprhead(DBPROCESS *dbproc,char *buffer, DBINT buf_len);
  776. extern  char *dbversion();
  777. extern  RETCODE dbcanquery(DBPROCESS *dbproc);
  778. #ifdef __cplusplus
  779. #if 0
  780. {
  781. #endif
  782. }
  783. #endif
  784. #endif