home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a063 / 13.img / INCLUDE / SQLDB.H next >
Encoding:
C/C++ Source or Header  |  1992-02-26  |  38.5 KB  |  803 lines

  1. /* SQLDB.H - DB-Library header file for the Microsoft SQL Server.
  2. **         The SYBASE SQL Server database for PC networks.
  3. **
  4. ** Copyright (c) 1989, 1991 by Microsoft Corp.    All rights reserved.
  5. ** Copyright (c) 1989, 1991 by Sybase, Inc.  All rights reserved.
  6. **
  7. */
  8.  
  9. #define  DBPROCESS  void        /* dbprocess structure type */
  10. #define  LOGINREC   void        /* login record type */
  11. #define  DBCURSOR   void        /* cursor record type */
  12.  
  13. /* Macros for setting the loginrec */
  14. #define DBSETLHOST(a,b)     dbsetlname((a), (b), DBSETHOST)
  15. #define DBSETLUSER(a,b)         dbsetlname((a), (b), DBSETUSER)
  16. #define DBSETLPWD(a,b)          dbsetlname((a), (b), DBSETPWD)
  17. #define DBSETLAPP(a,b)          dbsetlname((a), (b), DBSETAPP)
  18. #define BCP_SETL(a,b)        bcp_setl((a), (b))
  19.     /* The following is a version 4.2 addition */
  20. #define DBSETLNATLANG(a,b)    dbsetlname((a), (b), DBSETLANG)
  21.  
  22.  
  23. /* Macros for referencing the dbproc */
  24. #define DBDEAD(a)        dbdead(a)
  25. #define DBRBUF(a)               ((DBINT)dbdataready(a))
  26. #define dbrbuf(a)               ((DBINT)dbdataready(a))
  27. #define DBCOUNT(a)        dbcount(a)
  28. #define DBCURCMD(a)        dbcurcmd(a)
  29. #define DBCURROW(a)        dbcurrow(a)
  30. #define DBFIRSTROW(a)        dbfirstrow(a)
  31. #define DBLASTROW(a)        dblastrow(a)
  32. #define DBNUMORDERS(a)        dbnumorders(a)
  33. #define DBROWS(a)        dbrows(a)
  34. #define DBMORECMDS(a)        dbmorecmds(a)
  35. #define DBROWTYPE(a)        dbrowtype(a)
  36. #define DBCMDROW(a)        dbcmdrow(a)
  37. #define DBISAVAIL(a)        dbisavail(a)
  38. #define DBGETTIME()        dbgettime()
  39.  
  40. #ifndef DBMSWIN
  41.  
  42. /* Macros for locking and unlocking Windows data segment (for compatibility) */
  43. #define DBLOCKLIB()
  44. #define DBUNLOCKLIB()
  45.  
  46. #else    /* #ifndef DBMSWIN; Windows compilation */
  47.  
  48. /* Macros for locking and unlocking the DBLIB data segment */
  49. #define DBLOCKLIB()    dblocklib()
  50. #define DBUNLOCKLIB()    dbunlocklib()
  51.  
  52. #endif    /* #ifndef DBMSWIN */
  53.  
  54. #ifndef DBNTWIN32
  55. typedef long (far pascal *LGFARPROC)();     /* os/2/windows loadable driver fp*/
  56. #endif
  57.  
  58. /* Bulk Copy Definitions (bcp) */
  59.  
  60. #define DB_IN    1            /* transfer from client to server */
  61. #define DB_OUT    2            /* transfer from server to client */
  62.  
  63. #define BCPMAXERRS  1            /* bcp_control parameter */
  64. #define BCPFIRST    2            /* bcp_control parameter */
  65. #define BCPLAST     3            /* bcp_control parameter */
  66. #define BCPBATCH    4            /* bcp_control parameter */
  67.  
  68. #ifdef NOTDEF
  69.  
  70. /* Global Variables. */
  71. extern CHAR        *errarray[];    /* array of error message strings   */
  72. extern USHORT        DbTimeOut;        /* time out period in seconds        */
  73. extern USHORT        DbLoginTime;    /* login time out period in seconds */
  74. extern USHORT        DbMaxProcs;        /* max number of allowed dbprocs per process */
  75. extern DBPROCESS    **DbProcArray;    /* array of valid dbprocs.        */
  76. extern OPTIONDICT   OptionDict[14];    /* options dictionary            */
  77. extern CHAR        *Offsets[];        /* offset modifier list            */
  78. extern CHAR        *dbon;        /* " on " for SetOptionsParams()    */
  79. extern CHAR        *dboff;        /* " off " for SetOptionsParams()   */
  80. extern BYTE        *MonthAbr[];    /* month abbreviations array        */
  81. extern BYTE ConvertArray[MAXTYPES][MAXTYPES]; /* will convert truth table   */
  82. extern BYTE        DblibName[];    /* DBLIB name for LOGINREC        */
  83. extern BYTE        DblibVer[];     /* DBLIB version for LOGINREC        */
  84. extern BYTE        TdsVer[];        /* TDS version for LOGINREC        */
  85. extern CHAR        *prtypes[];        /* dbprtype() string array    */
  86.  
  87. #endif
  88.  
  89. #ifdef DBMSDOS
  90.  
  91. /* error handler */
  92. extern INT ( SQLAPI * DbErrHandler)(DBPROCESS *,INT,INT,INT,CHAR *,CHAR *);
  93.  
  94. /* message handler */
  95. extern INT ( SQLAPI * DbMsgHandler)(DBPROCESS *,DBINT,INT,INT,CHAR *);
  96.  
  97. /* Dblib function prototypes */
  98. extern    LOGINREC *  SQLAPI dblogin(void );
  99. extern    DBPROCESS * SQLAPI dbopen(LOGINREC *,CHAR *);
  100.  
  101. extern void * SQLAPI dberrhandle(INT (SQLAPI * DbErrHandler)(DBPROCESS *,INT,INT,INT,CHAR *,CHAR *));
  102. extern void * SQLAPI dbmsghandle(INT (SQLAPI * DbMsgHandler)(DBPROCESS *, DBINT,INT,INT,CHAR *));
  103.  
  104. extern    BYTE *    SQLAPI dbinit(void);
  105. extern    RETCODE SQLAPI dbsetlname(LOGINREC *,CHAR *,INT);
  106. extern    void    SQLAPI dbfreelogin(LOGINREC *);
  107. extern    RETCODE SQLAPI dbresults(DBPROCESS *);
  108. extern    STATUS    SQLAPI dbnextrow(DBPROCESS *);
  109. extern    void    SQLAPI dbclose(DBPROCESS *);
  110. extern    RETCODE SQLAPI dbcmd(DBPROCESS *,CHAR *);
  111. extern    RETCODE SQLAPI dbfcmd(DBPROCESS *, CHAR *, ...);
  112. extern    INT    SQLAPI dbstrlen(DBPROCESS *);
  113. extern    RETCODE SQLAPI dbstrcpy(DBPROCESS *,INT,INT,CHAR *);
  114. extern    CHAR *    SQLAPI dbgetchar(DBPROCESS *, INT);
  115. extern    RETCODE SQLAPI dbsqlexec(DBPROCESS *);
  116. extern    RETCODE SQLAPI dbsqlok(DBPROCESS *);
  117. extern    RETCODE SQLAPI dbsqlsend(DBPROCESS *);
  118. extern    RETCODE SQLAPI dbcanquery(DBPROCESS *);
  119. extern    STATUS    SQLAPI dbgetrow(DBPROCESS *,DBINT);
  120. extern    void    SQLAPI dbclrbuf(DBPROCESS *,DBINT);
  121. extern    void    SQLAPI dbfreebuf(DBPROCESS *);
  122. extern    RETCODE SQLAPI dbsettime(INT);
  123. extern    USHORT    SQLAPI dbgettime(void);
  124. extern    RETCODE SQLAPI dbsetlogintime(INT);
  125. extern    DBUBOOL SQLAPI dbdataready(DBPROCESS *);
  126. extern    RETCODE SQLAPI dbcancel(DBPROCESS *);
  127. extern    void    SQLAPI dbexit(void);
  128. extern    RETCODE SQLAPI dbsetopt(DBPROCESS *,INT,CHAR *);
  129. extern    DBUBOOL SQLAPI dbisopt(DBPROCESS *, INT, CHAR *);
  130. extern    RETCODE SQLAPI dbclropt(DBPROCESS *,INT,CHAR *);
  131. extern    INT    SQLAPI dbordercol(DBPROCESS *,INT);
  132. extern    INT    SQLAPI dbconvert(DBPROCESS *,INT,BYTE *,DBINT,INT,BYTE *,DBINT);
  133. extern    DBINT    SQLAPI dbcollen(DBPROCESS *,INT);
  134. extern    BYTE *    SQLAPI dbcolname(DBPROCESS *,INT);
  135. extern    INT    SQLAPI dbcoltype(DBPROCESS *,INT);
  136. extern    DBINT    SQLAPI dbcolutype(DBPROCESS *,SHORT);
  137. extern    BYTE *    SQLAPI dbdata(DBPROCESS *,INT);
  138. extern    DBINT    SQLAPI dbdatlen(DBPROCESS *,INT);
  139. extern    INT    SQLAPI dbnumcols(DBPROCESS *);
  140. extern    DBUBOOL SQLAPI dbcolbrowse(DBPROCESS *,INT);
  141. extern    CHAR *    SQLAPI dbtabname(DBPROCESS *,INT);
  142. extern    CHAR *    SQLAPI dbcolsource(DBPROCESS *,INT);
  143. extern    DBUBOOL SQLAPI dbtabbrowse(DBPROCESS *,INT);
  144. extern    CHAR *    SQLAPI dbtabsource(DBPROCESS *, INT, INT *);
  145. extern    INT    SQLAPI dbtabcount(DBPROCESS *);
  146. extern    INT    SQLAPI dbtsnewlen(DBPROCESS *);
  147. extern    RETCODE SQLAPI dbtsput(DBPROCESS *,DBBINARY *,INT,INT,CHAR *);
  148. extern    CHAR * SQLAPI dbqual(DBPROCESS *,INT,CHAR *);
  149. extern    void    SQLAPI dbfreequal(CHAR *);
  150. extern    void SQLAPI dbprhead(DBPROCESS *);
  151. extern    RETCODE SQLAPI dbprrow(DBPROCESS *);
  152. extern    RETCODE SQLAPI dbtxtsput(DBPROCESS *,DBBINARY *,INT);
  153. extern    RETCODE SQLAPI dbwritetext(DBPROCESS *,CHAR *,DBBINARY *,DBTINYINT, DBBINARY *,DBBOOL,DBINT,BYTE *);
  154. extern    RETCODE SQLAPI dbmoretext(DBPROCESS *,DBINT,BYTE *);
  155. extern    RETCODE SQLAPI dbuse(DBPROCESS *,CHAR *);
  156. extern    RETCODE SQLAPI dbbind(DBPROCESS *,INT,INT,DBINT,BYTE *);
  157. extern    DBUBOOL SQLAPI dbwillconvert(INT,INT);
  158. extern    RETCODE SQLAPI dbsetnull(DBPROCESS *, INT, INT, BYTE *);
  159. extern    RETCODE SQLAPI dbaltbind(DBPROCESS *,INT,INT,INT,DBINT,BYTE *);
  160. extern    DBINT    SQLAPI dbaltlen(DBPROCESS *,INT,INT);
  161. extern    INT    SQLAPI dbalttype(DBPROCESS *,INT,INT);
  162. extern    BYTE *    SQLAPI dbadata(DBPROCESS *,INT,INT);
  163. extern    DBINT    SQLAPI dbadlen(DBPROCESS *,INT,INT);
  164. extern    INT    SQLAPI dbnumalts(DBPROCESS *,INT);
  165. extern    INT    SQLAPI dbaltcolid(DBPROCESS *,INT,INT);
  166. extern    BYTE *    SQLAPI dbbylist(DBPROCESS *,INT,INT *);
  167. extern    INT    SQLAPI dbaltop(DBPROCESS *,INT,INT);
  168. extern    INT    SQLAPI dbnumcompute(DBPROCESS *);
  169. extern    CHAR *    SQLAPI dbprtype(INT);
  170. extern    CHAR *    SQLAPI dbchange(DBPROCESS *);
  171. extern    CHAR *    SQLAPI dbname(DBPROCESS *);
  172. extern    INT    SQLAPI dbgetoff(DBPROCESS *,DBUSMALLINT,INT);
  173. extern    DBINT    SQLAPI dbreadpage(DBPROCESS *,CHAR far *,DBINT,BYTE *);
  174. extern    RETCODE SQLAPI dbwritepage(DBPROCESS *,CHAR *,DBINT,DBINT,BYTE *);
  175.  
  176. extern    DBBINARY * SQLAPI dbtsnewval(DBPROCESS *);
  177. extern    DBBINARY * SQLAPI dbtxptr(DBPROCESS *,INT);
  178. extern    DBBINARY * SQLAPI dbtxtimestamp(DBPROCESS *,INT);
  179. extern    DBBINARY * SQLAPI dbtxtsnewval(DBPROCESS *);
  180. extern    RETCODE SQLAPI dbsetmaxprocs(SHORT);
  181. extern    SHORT SQLAPI dbgetmaxprocs(void);
  182. extern    BOOL  SQLAPI dbiscount(DBPROCESS *);
  183.  
  184. /* remote procedure call functions, these are version 4.2 extensions */
  185. extern    DBBOOL    SQLAPI dbhasretstat(DBPROCESS *);
  186. extern    INT    SQLAPI dbnumrets(DBPROCESS *);
  187. extern    BYTE *    SQLAPI dbretdata(DBPROCESS *, INT);
  188. extern    DBINT    SQLAPI dbretlen(DBPROCESS *, INT);
  189. extern    CHAR *    SQLAPI dbretname(DBPROCESS *, INT);
  190. extern    DBINT    SQLAPI dbretstatus(DBPROCESS *);
  191. extern    INT    SQLAPI dbrettype(DBPROCESS *, INT);
  192. extern    RETCODE SQLAPI dbrpcinit(DBPROCESS *, CHAR *, DBSMALLINT);
  193. extern    RETCODE SQLAPI dbrpcparam(DBPROCESS *,CHAR *,BYTE,INT,DBINT,DBINT,BYTE *);
  194. extern    RETCODE SQLAPI dbrpcsend(DBPROCESS *);
  195. extern    void    SQLAPI dbrpwclr(LOGINREC *);
  196. extern    RETCODE SQLAPI dbrpwset(LOGINREC *, CHAR *, CHAR *, INT);
  197. extern    void SQLAPI dbsetuserdata(DBPROCESS *, void *);
  198. extern    void * SQLAPI dbgetuserdata(DBPROCESS *);
  199.  
  200. /* two-phase commit functions */
  201. extern DBPROCESS * SQLAPI open_commit(LOGINREC *,CHAR *);
  202. extern void       SQLAPI close_commit(DBPROCESS *);
  203. extern void       SQLAPI build_xact_string(CHAR *,CHAR *,DBINT,CHAR *);
  204. extern DBINT       SQLAPI start_xact(DBPROCESS *,CHAR *,CHAR *,INT);
  205. extern RETCODE       SQLAPI commit_xact(DBPROCESS *,DBINT);
  206. extern RETCODE       SQLAPI abort_xact(DBPROCESS *,DBINT);
  207. extern RETCODE       SQLAPI remove_xact(DBPROCESS *,DBINT,INT);
  208. extern RETCODE       SQLAPI scan_xact(DBPROCESS *,DBINT);
  209. extern INT       SQLAPI stat_xact(DBPROCESS *,DBINT);
  210.  
  211. /* bulk copy prototypes */
  212. extern DBINT   SQLAPI bcp_batch(DBPROCESS *);
  213. extern RETCODE SQLAPI bcp_bind(DBPROCESS *, BYTE *, INT, DBINT, BYTE *, INT, INT, INT);
  214. extern RETCODE SQLAPI bcp_colfmt(DBPROCESS *, INT, BYTE, INT, DBINT, BYTE *, INT, INT);
  215. extern RETCODE SQLAPI bcp_collen(DBPROCESS *, DBINT, INT);
  216. extern RETCODE SQLAPI bcp_colptr(DBPROCESS *, BYTE *, INT);
  217. extern RETCODE SQLAPI bcp_columns(DBPROCESS *, INT);
  218. extern RETCODE SQLAPI bcp_control(DBPROCESS *, INT, DBINT);
  219. extern DBINT   SQLAPI bcp_done(DBPROCESS *);
  220. extern RETCODE SQLAPI bcp_exec(DBPROCESS *, DBINT *);
  221. extern RETCODE SQLAPI bcp_init(DBPROCESS *, CHAR *, CHAR *, CHAR *, INT);
  222. extern RETCODE SQLAPI bcp_moretext(DBPROCESS *, DBINT, BYTE *);
  223. extern RETCODE SQLAPI bcp_sendrow(DBPROCESS *);
  224. extern RETCODE SQLAPI bcp_setl(LOGINREC *, DBBOOL);
  225. /* Version 4.2 additions */
  226. extern RETCODE SQLAPI bcp_readfmt(DBPROCESS *, CHAR *);
  227. extern RETCODE SQLAPI bcp_writefmt(DBPROCESS *, CHAR *);
  228.  
  229.  
  230. /* Functions for referencing the dbproc */
  231. RETCODE SQLAPI dbcmdrow(DBPROCESS *);
  232. DBINT    SQLAPI dbcount(DBPROCESS *);
  233. INT    SQLAPI dbcurcmd(DBPROCESS *);
  234. DBINT    SQLAPI dbcurrow(DBPROCESS *);
  235. DBUBOOL SQLAPI dbdead(DBPROCESS *);
  236. DBINT    SQLAPI dbfirstrow(DBPROCESS *);
  237. DBUBOOL SQLAPI dbisavail(DBPROCESS *);
  238. void    SQLAPI dbsetavail(DBPROCESS *);
  239. DBINT    SQLAPI dblastrow(DBPROCESS *);
  240. RETCODE SQLAPI dbmorecmds(DBPROCESS *);
  241. INT    SQLAPI dbnumorders(DBPROCESS *);
  242. RETCODE SQLAPI dbrows(DBPROCESS *);
  243. STATUS    SQLAPI dbrowtype(DBPROCESS *);
  244.  
  245. /* version 4.2 extensions */
  246. extern    DBINT SQLAPI dbreadtext(DBPROCESS *,void *, DBINT);
  247. extern    DBINT SQLAPI dbaltutype(DBPROCESS *,SHORT,SHORT);
  248. extern    RETCODE SQLAPI dbanullbind(DBPROCESS *,SHORT,SHORT,DBINT *);
  249. extern    RETCODE SQLAPI dbnullbind(DBPROCESS *,SHORT,DBINT *);
  250. extern    RETCODE SQLAPI dbdatecrack(DBPROCESS *, DBDATEREC *, DBDATETIME *);
  251. extern    DBINT SQLAPI  dbvarylen(DBPROCESS *, SHORT);
  252.  
  253. /* Cursor related functions */
  254. extern    DBCURSOR * SQLAPI dbcursoropen(DBPROCESS *,CHAR *,SHORT,SHORT,USHORT,DBINT *);
  255. extern    RETCODE SQLAPI dbcursorinfo(DBCURSOR *, int *, DBINT *);
  256. extern    RETCODE SQLAPI dbcursorcolinfo(DBCURSOR *, int, char *, int *,
  257.          DBINT *, int *);
  258. extern    RETCODE SQLAPI dbcursorbind(DBCURSOR *, int, int, DBINT, DBINT *, CHAR *);
  259. extern    RETCODE SQLAPI dbcursorfetch(DBCURSOR *,SHORT,SHORT);
  260. extern    RETCODE SQLAPI dbcursor(DBCURSOR *, SHORT,SHORT,CHAR *,CHAR *);
  261. extern    RETCODE SQLAPI dbcursorclose(DBCURSOR *);
  262.  
  263. #endif            /* DBMSDOS */
  264.  
  265. #ifdef DBMSOS2
  266. /* error handler */
  267. extern INT ( SQLAPI * DbErrHandler)(DBPROCESS far *,INT,INT,INT,CHAR far *,CHAR far *);
  268.  
  269. /* message handler */
  270. extern INT ( SQLAPI * DbMsgHandler)(DBPROCESS far *,DBINT,INT,INT,CHAR far *);
  271.  
  272. /* extern USHORT DbTimeOut;    /* time out period in seconds        */
  273.  
  274. /* Dblib function prototypes */
  275. extern LOGINREC far *  SQLAPI dblogin(void );
  276. extern DBPROCESS far * SQLAPI dbopen(LOGINREC far *,CHAR far *);
  277.  
  278. extern void far * SQLAPI dberrhandle(INT (SQLAPI * DbErrHandler)(DBPROCESS far *,INT,INT,INT,CHAR far *,CHAR far *));
  279. extern void far * SQLAPI dbmsghandle(INT (SQLAPI * DbMsgHandler)(DBPROCESS far *,DBINT,INT,INT,CHAR far *));
  280.  
  281. extern BYTE far * SQLAPI dbinit(void);
  282. extern RETCODE      SQLAPI dbsetlname(LOGINREC far *,CHAR far *,INT);
  283. extern void      SQLAPI dbfreelogin(LOGINREC far *);
  284. extern RETCODE      SQLAPI dbresults(DBPROCESS far *);
  285. extern STATUS      SQLAPI dbnextrow(DBPROCESS far *);
  286. extern void      SQLAPI dbclose(DBPROCESS far *);
  287. extern RETCODE      SQLAPI dbcmd(DBPROCESS far *,CHAR far *);
  288. extern RETCODE      SQLAPI dbfcmd(DBPROCESS far *, CHAR far *, ...);
  289. extern INT      SQLAPI dbstrlen(DBPROCESS far *);
  290. extern RETCODE      SQLAPI dbstrcpy(DBPROCESS far *,INT,INT,CHAR far *);
  291. extern CHAR far * SQLAPI dbgetchar(DBPROCESS far *, INT);
  292. extern RETCODE      SQLAPI dbsqlexec(DBPROCESS far *);
  293. extern RETCODE      SQLAPI dbsqlok(DBPROCESS far *);
  294. extern RETCODE      SQLAPI dbsqlsend(DBPROCESS far *);
  295. extern RETCODE      SQLAPI dbcanquery(DBPROCESS far *);
  296. extern STATUS      SQLAPI dbgetrow(DBPROCESS far *,DBINT);
  297. extern void      SQLAPI dbclrbuf(DBPROCESS far *,DBINT);
  298. extern void      SQLAPI dbfreebuf(DBPROCESS far *);
  299. extern RETCODE      SQLAPI dbsettime(INT);
  300. extern USHORT      SQLAPI dbgettime(void);
  301. extern RETCODE      SQLAPI dbsetlogintime(INT);
  302. extern DBUBOOL      SQLAPI dbdataready(DBPROCESS far *);
  303. extern RETCODE      SQLAPI dbcancel(DBPROCESS far *);
  304. extern void      SQLAPI dbexit(void);
  305. extern RETCODE      SQLAPI dbsetopt(DBPROCESS far *,INT,CHAR far *);
  306. extern DBUBOOL      SQLAPI dbisopt(DBPROCESS far *, INT, CHAR far *);
  307. extern RETCODE      SQLAPI dbclropt(DBPROCESS far *,INT,CHAR far *);
  308. extern INT      SQLAPI dbordercol(DBPROCESS far *,INT);
  309. extern INT      SQLAPI dbconvert(DBPROCESS far *,INT,BYTE far *,DBINT,INT,BYTE far *,DBINT);
  310. extern DBINT      SQLAPI dbcollen(DBPROCESS far *,INT);
  311. extern BYTE far * SQLAPI dbcolname(DBPROCESS far *,INT);
  312. extern INT      SQLAPI dbcoltype(DBPROCESS far *,INT);
  313. extern DBINT      SQLAPI dbcolutype(DBPROCESS *,SHORT);
  314. extern BYTE far * SQLAPI dbdata(DBPROCESS far *,INT);
  315. extern DBINT      SQLAPI dbdatlen(DBPROCESS far *,INT);
  316. extern INT      SQLAPI dbnumcols(DBPROCESS far *);
  317. extern DBUBOOL      SQLAPI dbcolbrowse(DBPROCESS far *,INT);
  318. extern CHAR far * SQLAPI dbtabname(DBPROCESS far *,INT);
  319. extern CHAR far * SQLAPI dbcolsource(DBPROCESS far *,INT);
  320. extern DBUBOOL      SQLAPI dbtabbrowse(DBPROCESS far *,INT);
  321. extern CHAR far * SQLAPI dbtabsource(DBPROCESS far *, INT, INT far *);
  322. extern INT      SQLAPI dbtabcount(DBPROCESS far *);
  323. extern INT      SQLAPI dbtsnewlen(DBPROCESS far *);
  324. extern RETCODE      SQLAPI dbtsput(DBPROCESS far *,DBBINARY far *,INT,INT,CHAR far *);
  325. extern CHAR far * SQLAPI dbqual(DBPROCESS far *,INT,CHAR far *);
  326. extern void      SQLAPI dbfreequal(CHAR far *);
  327. extern void      SQLAPI dbprhead(DBPROCESS far *);
  328. extern RETCODE      SQLAPI dbprrow(DBPROCESS far *);
  329. extern RETCODE      SQLAPI dbtxtsput(DBPROCESS far *,DBBINARY far *,INT);
  330. extern RETCODE      SQLAPI dbwritetext(DBPROCESS far *,CHAR far *,DBBINARY far *,DBTINYINT, DBBINARY far *,DBBOOL,DBINT,BYTE far *);
  331. extern RETCODE      SQLAPI dbmoretext(DBPROCESS far *,DBINT,BYTE far *);
  332. extern RETCODE      SQLAPI dbuse(DBPROCESS far *,CHAR far *);
  333. extern RETCODE      SQLAPI dbbind(DBPROCESS far *,INT,INT,DBINT,BYTE far *);
  334. extern DBUBOOL      SQLAPI dbwillconvert(INT,INT);
  335. extern RETCODE      SQLAPI dbsetnull(DBPROCESS far *, INT, INT, BYTE far *);
  336. extern RETCODE      SQLAPI dbaltbind(DBPROCESS far *,INT,INT,INT,DBINT,BYTE far *);
  337. extern DBINT      SQLAPI dbaltlen(DBPROCESS far *,INT,INT);
  338. extern INT      SQLAPI dbalttype(DBPROCESS far *,INT,INT);
  339. extern BYTE far * SQLAPI dbadata(DBPROCESS far *,INT,INT);
  340. extern DBINT      SQLAPI dbadlen(DBPROCESS far *,INT,INT);
  341. extern INT      SQLAPI dbnumalts(DBPROCESS far *,INT);
  342. extern INT      SQLAPI dbaltcolid(DBPROCESS far *,INT,INT);
  343. extern BYTE far * SQLAPI dbbylist(DBPROCESS far *,INT,INT far *);
  344. extern INT      SQLAPI dbaltop(DBPROCESS far *,INT,INT);
  345. extern INT      SQLAPI dbnumcompute(DBPROCESS far *);
  346. extern CHAR far * SQLAPI dbprtype(INT);
  347. extern CHAR far * SQLAPI dbchange(DBPROCESS far *);
  348. extern CHAR far * SQLAPI dbname(DBPROCESS far *);
  349. extern INT      SQLAPI dbgetoff(DBPROCESS far *,DBUSMALLINT,INT);
  350. extern DBINT      SQLAPI dbreadpage(DBPROCESS far *,CHAR far *,DBINT,BYTE far *);
  351. extern RETCODE      SQLAPI dbwritepage(DBPROCESS far *,CHAR far *,DBINT,DBINT,BYTE far *);
  352.  
  353. extern DBBOOL      SQLAPI dbhasretstat(DBPROCESS far *);
  354. extern INT      SQLAPI dbnumrets(DBPROCESS far *);
  355. extern BYTE far * SQLAPI dbretdata(DBPROCESS far *, INT);
  356. extern DBINT      SQLAPI dbretlen(DBPROCESS far *, INT);
  357. extern CHAR far * SQLAPI dbretname(DBPROCESS far *, INT);
  358. extern DBINT      SQLAPI dbretstatus(DBPROCESS far *);
  359. extern INT      SQLAPI dbrettype(DBPROCESS far *, INT);
  360. extern RETCODE      SQLAPI dbrpcinit(DBPROCESS far *, CHAR far *, DBSMALLINT);
  361. extern RETCODE      SQLAPI dbrpcparam(DBPROCESS far *,CHAR far *,BYTE,INT,DBINT,DBINT,BYTE far*);
  362. extern RETCODE      SQLAPI dbrpcsend(DBPROCESS far *);
  363. extern void      SQLAPI dbrpwclr(LOGINREC far *);
  364. extern RETCODE      SQLAPI dbrpwset(LOGINREC far *, CHAR far *, CHAR far *, INT);
  365. extern    void SQLAPI dbsetuserdata(DBPROCESS far *, void far *);
  366. extern    void * SQLAPI dbgetuserdata(DBPROCESS far *);
  367.  
  368. extern DBBINARY far * SQLAPI dbtsnewval(DBPROCESS far *);
  369. extern DBBINARY far * SQLAPI dbtxptr(DBPROCESS far *,INT);
  370. extern DBBINARY far * SQLAPI dbtxtimestamp(DBPROCESS far *,INT);
  371. extern DBBINARY far * SQLAPI dbtxtsnewval(DBPROCESS far *);
  372. extern    RETCODE SQLAPI dbsetmaxprocs(SHORT);
  373. extern    SHORT SQLAPI dbgetmaxprocs(void);
  374. extern    BOOL  SQLAPI dbiscount(DBPROCESS far *);
  375.  
  376. /* two-phase commit functions */
  377. extern DBPROCESS far * SQLAPI open_commit(LOGINREC far *,CHAR far *);
  378. extern void           SQLAPI close_commit(DBPROCESS far *);
  379. extern void           SQLAPI build_xact_string(CHAR far *,CHAR far *,DBINT,CHAR far *);
  380. extern DBINT           SQLAPI start_xact(DBPROCESS far *,CHAR far *,CHAR far *,INT);
  381. extern RETCODE           SQLAPI commit_xact(DBPROCESS far *,DBINT);
  382. extern RETCODE           SQLAPI abort_xact(DBPROCESS far *,DBINT);
  383. extern RETCODE           SQLAPI remove_xact(DBPROCESS far *,DBINT,INT);
  384. extern RETCODE           SQLAPI scan_xact(DBPROCESS far *,DBINT);
  385. extern INT           SQLAPI stat_xact(DBPROCESS far *,DBINT);
  386.  
  387. /* bulk copy prototypes */
  388. extern DBINT   SQLAPI bcp_batch(DBPROCESS far *);
  389. extern RETCODE SQLAPI bcp_bind(DBPROCESS far *, BYTE far *, INT, DBINT, BYTE far *, INT, INT, INT);
  390. extern RETCODE SQLAPI bcp_colfmt(DBPROCESS far *, INT, BYTE, INT, DBINT, BYTE far *, INT, INT);
  391. extern RETCODE SQLAPI bcp_collen(DBPROCESS far *, DBINT, INT);
  392. extern RETCODE SQLAPI bcp_colptr(DBPROCESS far *, BYTE far *, INT);
  393. extern RETCODE SQLAPI bcp_columns(DBPROCESS far *, INT);
  394. extern RETCODE SQLAPI bcp_control(DBPROCESS far *, INT, DBINT);
  395. extern DBINT   SQLAPI bcp_done(DBPROCESS far *);
  396. extern RETCODE SQLAPI bcp_exec(DBPROCESS far *, DBINT far *);
  397. extern RETCODE SQLAPI bcp_init(DBPROCESS far *, CHAR far *, CHAR far *, CHAR far *, INT);
  398. extern RETCODE SQLAPI bcp_moretext(DBPROCESS far *, DBINT, BYTE far *);
  399. extern RETCODE SQLAPI bcp_sendrow(DBPROCESS far *);
  400. extern RETCODE SQLAPI bcp_setl(LOGINREC far *, DBBOOL);
  401. /* Version 4.2 additions */
  402. extern RETCODE SQLAPI bcp_readfmt(DBPROCESS far *, CHAR far *);
  403. extern RETCODE SQLAPI bcp_writefmt(DBPROCESS far *, CHAR far *);
  404.  
  405. /* Functions for referencing the dbproc */
  406. RETCODE SQLAPI dbcmdrow(DBPROCESS far *);
  407. DBINT    SQLAPI dbcount(DBPROCESS far *);
  408. INT    SQLAPI dbcurcmd(DBPROCESS far *);
  409. DBINT    SQLAPI dbcurrow(DBPROCESS far *);
  410. DBUBOOL SQLAPI dbdead(DBPROCESS far *);
  411. DBINT    SQLAPI dbfirstrow(DBPROCESS far *);
  412. DBUBOOL SQLAPI dbisavail(DBPROCESS far *);
  413. void    SQLAPI dbsetavail(DBPROCESS far *);
  414. DBINT    SQLAPI dblastrow(DBPROCESS far *);
  415. RETCODE SQLAPI dbmorecmds(DBPROCESS far *);
  416. INT    SQLAPI dbnumorders(DBPROCESS far *);
  417. RETCODE SQLAPI dbrows(DBPROCESS far *);
  418. STATUS    SQLAPI dbrowtype(DBPROCESS far *);
  419.  
  420. /* TDS version 4 extensions */
  421. extern    DBINT SQLAPI dbreadtext(DBPROCESS far *,void far *, DBINT);
  422. extern    DBINT SQLAPI dbaltutype(DBPROCESS far *,SHORT,SHORT);
  423. extern    RETCODE SQLAPI dbanullbind(DBPROCESS far *,SHORT,SHORT,DBINT far *);
  424. extern    RETCODE SQLAPI dbnullbind(DBPROCESS far *,SHORT,DBINT far *);
  425. extern    RETCODE SQLAPI dbdatecrack(DBPROCESS far *, DBDATEREC far *, DBDATETIME far *);
  426. extern    DBINT SQLAPI  dbvarylen(DBPROCESS far *, SHORT);
  427.  
  428. /* Cursor related functions */
  429. extern    DBCURSOR * SQLAPI dbcursoropen(DBPROCESS far *, CHAR far *,
  430.               SHORT,SHORT,USHORT, DBINT far *);
  431. extern    RETCODE SQLAPI dbcursorinfo(DBCURSOR far *, int far *, DBINT far *);
  432. extern    RETCODE SQLAPI dbcursorcolinfo(DBCURSOR far *, int, char far *, int far *,
  433.          DBINT far *, int far *);
  434. extern    RETCODE SQLAPI dbcursorbind(DBCURSOR far *, int, int, DBINT, DBINT far *, CHAR far *);
  435. extern    RETCODE SQLAPI dbcursorfetch(DBCURSOR far *,SHORT,SHORT);
  436. extern    RETCODE SQLAPI dbcursor(DBCURSOR far *, SHORT,SHORT,CHAR far *,CHAR far *);
  437. extern    RETCODE SQLAPI dbcursorclose(DBCURSOR far *);
  438.  
  439.  
  440. #endif        /* DBMSOS2 */
  441.  
  442. #ifdef DBMSWIN
  443. #ifndef  NEAR
  444. #define  NEAR
  445. #endif
  446. /* Dblib function prototypes */
  447. extern LOGINREC NEAR *    SQLAPI dblogin(void);
  448. extern DBPROCESS NEAR * SQLAPI dbopen(LOGINREC NEAR *,CHAR far *);
  449.  
  450. FARPROC dberrhandle(FARPROC);
  451. FARPROC dbmsghandle(FARPROC);
  452.  
  453. extern BYTE far * SQLAPI dbinit(void);
  454.  
  455. extern void    SQLAPI dbwinexit(void);
  456. extern RETCODE SQLAPI dbsetlname(LOGINREC NEAR *,CHAR far *,INT);
  457. extern void    SQLAPI dbfreelogin(LOGINREC NEAR *);
  458. extern RETCODE SQLAPI dbresults(DBPROCESS NEAR *);
  459. extern STATUS  SQLAPI dbnextrow(DBPROCESS NEAR *);
  460. extern void    SQLAPI dbclose(DBPROCESS NEAR *);
  461. extern RETCODE SQLAPI dbcmd(DBPROCESS NEAR *,CHAR far *);
  462. extern RETCODE SQLAPI dbfcmd(DBPROCESS NEAR *, CHAR far *, ...);
  463. extern INT   SQLAPI dbstrlen(DBPROCESS NEAR *);
  464. extern RETCODE SQLAPI dbstrcpy(DBPROCESS NEAR *,INT,INT,CHAR far *);
  465. extern RETCODE SQLAPI dbsqlexec(DBPROCESS NEAR *);
  466. extern RETCODE SQLAPI dbsqlok(DBPROCESS NEAR *);
  467. extern RETCODE SQLAPI dbsqlsend(DBPROCESS NEAR *);
  468. extern RETCODE SQLAPI dbcanquery(DBPROCESS NEAR *);
  469. extern STATUS  SQLAPI dbgetrow(DBPROCESS NEAR *,DBINT);
  470. extern void    SQLAPI dbclrbuf(DBPROCESS NEAR *,DBINT);
  471. extern void    SQLAPI dbfreebuf(DBPROCESS NEAR *);
  472. extern RETCODE SQLAPI dbsettime(INT);
  473. extern USHORT  SQLAPI dbgettime(void);
  474. extern RETCODE SQLAPI dbsetlogintime(INT);
  475. extern DBUBOOL SQLAPI dbdataready(DBPROCESS NEAR *);
  476. extern RETCODE SQLAPI dbcancel(DBPROCESS NEAR *);
  477. extern void    SQLAPI dbexit(void);
  478. extern RETCODE SQLAPI dbsetopt(DBPROCESS NEAR *,INT,CHAR far *);
  479. extern DBUBOOL SQLAPI dbisopt(DBPROCESS NEAR *, INT, CHAR far *);
  480. extern RETCODE SQLAPI dbclropt(DBPROCESS NEAR *,INT,CHAR far *);
  481. extern INT   SQLAPI dbordercol(DBPROCESS NEAR *,INT);
  482. extern INT   SQLAPI dbconvert(DBPROCESS NEAR *,INT,BYTE far *,DBINT,INT,BYTE far *,DBINT);
  483. extern DBINT   SQLAPI dbcollen(DBPROCESS NEAR *,INT);
  484. extern INT   SQLAPI dbcoltype(DBPROCESS NEAR *,INT);
  485. extern DBINT   SQLAPI dbcolutype(DBPROCESS NEAR *,SHORT);
  486. extern DBINT   SQLAPI dbdatlen(DBPROCESS NEAR *,INT);
  487. extern INT   SQLAPI dbnumcols(DBPROCESS NEAR *);
  488. extern DBUBOOL SQLAPI dbcolbrowse(DBPROCESS NEAR *,INT);
  489. extern DBUBOOL SQLAPI dbtabbrowse(DBPROCESS NEAR *,INT);
  490. extern INT   SQLAPI dbtabcount(DBPROCESS NEAR *);
  491. extern INT   SQLAPI dbtsnewlen(DBPROCESS NEAR *);
  492. extern RETCODE SQLAPI dbtsput(DBPROCESS NEAR *,DBBINARY far *,INT,INT,CHAR far *);
  493. extern void    SQLAPI dbfreequal(CHAR far *);
  494. extern void    SQLAPI dbprhead(DBPROCESS NEAR *);
  495. extern RETCODE SQLAPI dbprrow(DBPROCESS NEAR *);
  496. extern RETCODE SQLAPI dbtxtsput(DBPROCESS NEAR *,DBBINARY far *,INT);
  497. extern RETCODE SQLAPI dbwritetext(DBPROCESS NEAR *,CHAR far *,DBBINARY far *,DBTINYINT, DBBINARY far *,DBBOOL,DBINT,BYTE far *);
  498. extern RETCODE SQLAPI dbmoretext(DBPROCESS NEAR *,DBINT,BYTE far *);
  499. extern RETCODE SQLAPI dbuse(DBPROCESS NEAR *,CHAR far *);
  500. extern RETCODE SQLAPI dbbind(DBPROCESS NEAR *,INT,INT,DBINT,BYTE far *);
  501. extern DBUBOOL SQLAPI dbwillconvert(INT,INT);
  502. extern RETCODE SQLAPI dbsetnull(DBPROCESS NEAR *, INT, INT, BYTE far *);
  503. extern RETCODE SQLAPI dbaltbind(DBPROCESS NEAR *,INT,INT,INT,DBINT,BYTE far *);
  504. extern DBINT   SQLAPI dbaltlen(DBPROCESS NEAR *,INT,INT);
  505. extern INT   SQLAPI dbalttype(DBPROCESS NEAR *,INT,INT);
  506. extern DBINT   SQLAPI dbadlen(DBPROCESS NEAR *,INT,INT);
  507. extern INT   SQLAPI dbnumalts(DBPROCESS NEAR *,INT);
  508. extern INT   SQLAPI dbaltcolid(DBPROCESS NEAR *,INT,INT);
  509. extern INT   SQLAPI dbaltop(DBPROCESS NEAR *,INT,INT);
  510. extern INT   SQLAPI dbnumcompute(DBPROCESS NEAR *);
  511. extern INT   SQLAPI dbgetoff(DBPROCESS NEAR *,DBUSMALLINT,INT);
  512. extern DBINT   SQLAPI dbreadpage(DBPROCESS NEAR *,CHAR far *,DBINT,BYTE far *);
  513. extern RETCODE SQLAPI dbwritepage(DBPROCESS NEAR *,CHAR far *,DBINT,DBINT,BYTE far *);
  514.  
  515. /* remote procedure call functions, these are version 4.2 extensions */
  516. extern DBBOOL  SQLAPI dbhasretstat(DBPROCESS NEAR *);
  517. extern INT   SQLAPI dbnumrets(DBPROCESS NEAR *);
  518. extern DBINT   SQLAPI dbretlen(DBPROCESS NEAR *, INT);
  519. extern DBINT   SQLAPI dbretstatus(DBPROCESS NEAR *);
  520. extern INT   SQLAPI dbrettype(DBPROCESS NEAR *, INT);
  521. extern RETCODE SQLAPI dbrpcinit(DBPROCESS NEAR *, CHAR far *, DBSMALLINT);
  522. extern RETCODE SQLAPI dbrpcparam(DBPROCESS*,CHAR far *,BYTE,INT,DBINT,DBINT,BYTE far*);
  523. extern RETCODE SQLAPI dbrpcsend(DBPROCESS NEAR *);
  524. extern void    SQLAPI dbrpwclr(LOGINREC NEAR *);
  525. extern RETCODE SQLAPI dbrpwset(LOGINREC NEAR *, CHAR far *, CHAR far *, INT);
  526. extern CHAR far * SQLAPI dbretname(DBPROCESS NEAR *, INT);
  527. extern BYTE far * SQLAPI dbretdata(DBPROCESS NEAR *, INT);
  528. extern    void SQLAPI dbsetuserdata(DBPROCESS NEAR *, void far *);
  529. extern    void * SQLAPI dbgetuserdata(DBPROCESS NEAR *);
  530.  
  531. extern CHAR far * SQLAPI dbprtype(INT);
  532. extern CHAR far * SQLAPI dbchange(DBPROCESS NEAR *);
  533. extern CHAR far * SQLAPI dbname(DBPROCESS NEAR *);
  534. extern BYTE far * SQLAPI dbbylist(DBPROCESS NEAR *,INT,INT far *);
  535. extern BYTE far * SQLAPI dbadata(DBPROCESS NEAR *,INT,INT);
  536. extern CHAR far * SQLAPI dbqual(DBPROCESS NEAR *,INT,CHAR far *);
  537. extern CHAR far * SQLAPI dbtabsource(DBPROCESS NEAR *, INT, INT far *);
  538. extern CHAR far * SQLAPI dbtabname(DBPROCESS NEAR *,INT);
  539. extern CHAR far * SQLAPI dbcolsource(DBPROCESS NEAR *,INT);
  540. extern BYTE far * SQLAPI dbdata(DBPROCESS NEAR *,INT);
  541. extern BYTE far * SQLAPI dbcolname(DBPROCESS NEAR *,INT);
  542. extern CHAR far * SQLAPI dbgetchar(DBPROCESS NEAR *, INT);
  543.  
  544. extern DBBINARY far * SQLAPI dbtsnewval(DBPROCESS NEAR *);
  545. extern DBBINARY far * SQLAPI dbtxptr(DBPROCESS NEAR *,INT);
  546. extern DBBINARY far * SQLAPI dbtxtimestamp(DBPROCESS NEAR *,INT);
  547. extern DBBINARY far * SQLAPI dbtxtsnewval(DBPROCESS NEAR *);
  548. extern    RETCODE SQLAPI dbsetmaxprocs(SHORT);
  549. extern    SHORT SQLAPI dbgetmaxprocs(void);
  550. extern    BOOL  SQLAPI dbiscount(DBPROCESS NEAR *);
  551.  
  552. /* two-phase commit functions */
  553. extern DBPROCESS NEAR * SQLAPI open_commit(LOGINREC NEAR *,CHAR far *);
  554. extern void       SQLAPI close_commit(DBPROCESS NEAR *);
  555. extern void       SQLAPI build_xact_string(CHAR far *,CHAR far *,DBINT,CHAR far *);
  556. extern DBINT       SQLAPI start_xact(DBPROCESS NEAR *,CHAR far *,CHAR far *,INT);
  557. extern RETCODE       SQLAPI commit_xact(DBPROCESS NEAR *,DBINT);
  558. extern RETCODE       SQLAPI abort_xact(DBPROCESS NEAR *,DBINT);
  559. extern RETCODE       SQLAPI remove_xact(DBPROCESS NEAR *,DBINT,INT);
  560. extern RETCODE       SQLAPI scan_xact(DBPROCESS NEAR *,DBINT);
  561. extern INT       SQLAPI stat_xact(DBPROCESS NEAR *,DBINT);
  562.  
  563. /* bulk copy prototypes */
  564. extern DBINT   SQLAPI bcp_batch(DBPROCESS NEAR *);
  565. extern RETCODE SQLAPI bcp_bind(DBPROCESS NEAR *, BYTE far *, INT, DBINT, BYTE far *, INT, INT, INT);
  566. extern RETCODE SQLAPI bcp_colfmt(DBPROCESS NEAR *, INT, BYTE, INT, DBINT, BYTE far *, INT, INT);
  567. extern RETCODE SQLAPI bcp_collen(DBPROCESS NEAR *, DBINT, INT);
  568. extern RETCODE SQLAPI bcp_colptr(DBPROCESS NEAR *, BYTE far *, INT);
  569. extern RETCODE SQLAPI bcp_columns(DBPROCESS NEAR *, INT);
  570. extern RETCODE SQLAPI bcp_control(DBPROCESS NEAR *, INT, DBINT);
  571. extern DBINT   SQLAPI bcp_done(DBPROCESS NEAR *);
  572. extern RETCODE SQLAPI bcp_exec(DBPROCESS NEAR *, DBINT far *);
  573. extern RETCODE SQLAPI bcp_init(DBPROCESS NEAR *, CHAR far *, CHAR far *, CHAR far *, INT);
  574. extern RETCODE SQLAPI bcp_moretext(DBPROCESS NEAR *, DBINT, BYTE far *);
  575. extern RETCODE SQLAPI bcp_sendrow(DBPROCESS NEAR *);
  576. extern RETCODE SQLAPI bcp_setl(LOGINREC NEAR *, DBBOOL);
  577. /* Version 4.2 additions */
  578. extern RETCODE SQLAPI bcp_readfmt(DBPROCESS NEAR *, CHAR far *);
  579. extern RETCODE SQLAPI bcp_writefmt(DBPROCESS NEAR *, CHAR far *);
  580.  
  581. /* Functions for referencing the dbproc */
  582. RETCODE SQLAPI dbcmdrow(DBPROCESS NEAR *);
  583. DBINT    SQLAPI dbcount(DBPROCESS NEAR *);
  584. INT    SQLAPI dbcurcmd(DBPROCESS NEAR *);
  585. DBINT    SQLAPI dbcurrow(DBPROCESS NEAR *);
  586. DBUBOOL SQLAPI dbdead(DBPROCESS NEAR *);
  587. DBINT    SQLAPI dbfirstrow(DBPROCESS NEAR *);
  588. DBUBOOL SQLAPI dbisavail(DBPROCESS NEAR *);
  589. void    SQLAPI dbsetavail(DBPROCESS NEAR *);
  590. DBINT    SQLAPI dblastrow(DBPROCESS NEAR *);
  591. void    SQLAPI dblocklib( void );
  592. RETCODE SQLAPI dbmorecmds(DBPROCESS NEAR *);
  593. INT    SQLAPI dbnumorders(DBPROCESS NEAR *);
  594. RETCODE SQLAPI dbrows(DBPROCESS NEAR *);
  595. STATUS    SQLAPI dbrowtype(DBPROCESS NEAR *);
  596. void    SQLAPI dbunlocklib( void );
  597. /* Function to return the absolute address of the dbproc */
  598. DBPROCESS far * SQLAPI dbabsolute(DBPROCESS NEAR *);
  599.  
  600. /* TDS version 4 extensions */
  601. extern    DBINT SQLAPI dbreadtext(DBPROCESS NEAR *,void far *, DBINT);
  602. extern    DBINT SQLAPI dbaltutype(DBPROCESS NEAR *,SHORT,SHORT);
  603. extern    RETCODE SQLAPI dbanullbind(DBPROCESS NEAR *,SHORT,SHORT,DBINT far *);
  604. extern    RETCODE SQLAPI dbnullbind(DBPROCESS NEAR *,SHORT,DBINT far *);
  605. extern    RETCODE SQLAPI dbdatecrack(DBPROCESS NEAR *, DBDATEREC far *, DBDATETIME far *);
  606. extern    DBINT SQLAPI  dbvarylen(DBPROCESS NEAR *, SHORT);
  607.  
  608. /* Cursor related functions */
  609. extern    DBCURSOR * SQLAPI dbcursoropen(DBPROCESS NEAR *, CHAR far *,
  610.        SHORT,SHORT,USHORT, DBINT far *);
  611. extern    RETCODE SQLAPI dbcursorinfo(DBCURSOR NEAR *, int far *, DBINT far *);
  612. extern    RETCODE SQLAPI dbcursorcolinfo(DBCURSOR NEAR *, int, char far *, int far *,
  613.          DBINT far *, int far *);
  614. extern    RETCODE SQLAPI dbcursorbind(DBCURSOR NEAR *, int, int, DBINT, DBINT far *,
  615.        CHAR far *);
  616. extern    RETCODE SQLAPI dbcursorfetch(DBCURSOR NEAR *,SHORT,SHORT);
  617. extern    RETCODE SQLAPI dbcursor(DBCURSOR NEAR *, SHORT,SHORT,CHAR far *,CHAR far *);
  618. extern    RETCODE SQLAPI dbcursorclose(DBCURSOR NEAR *);
  619.  
  620.  
  621. #endif    /* #ifdef DBMSWIN */
  622.  
  623. #ifdef DBNTWIN32
  624.  
  625. #ifndef FARPROC
  626. typedef  int (SQLAPI *FARPROC)();
  627. #endif
  628. /* Dblib function prototypes */
  629. extern LOGINREC *  SQLAPI dblogin(void);
  630. extern DBPROCESS * SQLAPI dbopen(LOGINREC *,CHAR *);
  631.  
  632. FARPROC dberrhandle(FARPROC);
  633. FARPROC dbmsghandle(FARPROC);
  634.  
  635. extern BYTE * SQLAPI dbinit(void);
  636.  
  637. extern void    SQLAPI dbwinexit(void);
  638. extern RETCODE SQLAPI dbsetlname(LOGINREC *,CHAR *,INT);
  639. extern void    SQLAPI dbfreelogin(LOGINREC *);
  640. extern RETCODE SQLAPI dbresults(DBPROCESS *);
  641. extern STATUS  SQLAPI dbnextrow(DBPROCESS *);
  642. extern void    SQLAPI dbclose(DBPROCESS  *);
  643. extern RETCODE SQLAPI dbcmd(DBPROCESS *,CHAR *);
  644. extern RETCODE SQLAPI dbfcmd(DBPROCESS *, CHAR *, ...);
  645. extern INT   SQLAPI dbstrlen(DBPROCESS *);
  646. extern RETCODE SQLAPI dbstrcpy(DBPROCESS *,INT,INT,CHAR *);
  647. extern RETCODE SQLAPI dbsqlexec(DBPROCESS *);
  648. extern RETCODE SQLAPI dbsqlok(DBPROCESS *);
  649. extern RETCODE SQLAPI dbsqlsend(DBPROCESS *);
  650. extern RETCODE SQLAPI dbcanquery(DBPROCESS *);
  651. extern STATUS  SQLAPI dbgetrow(DBPROCESS *,DBINT);
  652. extern void    SQLAPI dbclrbuf(DBPROCESS *,DBINT);
  653. extern void    SQLAPI dbfreebuf(DBPROCESS *);
  654. extern RETCODE SQLAPI dbsettime(INT);
  655. extern USHORT  SQLAPI dbgettime(void);
  656. extern RETCODE SQLAPI dbsetlogintime(INT);
  657. extern DBUBOOL SQLAPI dbdataready(DBPROCESS *);
  658. extern RETCODE SQLAPI dbcancel(DBPROCESS *);
  659. extern void    SQLAPI dbexit(void);
  660. extern RETCODE SQLAPI dbsetopt(DBPROCESS *,INT,CHAR *);
  661. extern DBUBOOL SQLAPI dbisopt(DBPROCESS *, INT, CHAR *);
  662. extern RETCODE SQLAPI dbclropt(DBPROCESS *,INT,CHAR *);
  663. extern INT   SQLAPI dbordercol(DBPROCESS *,INT);
  664. extern INT   SQLAPI dbconvert(DBPROCESS *,INT,BYTE *,DBINT,INT,BYTE *,DBINT);
  665. extern DBINT   SQLAPI dbcollen(DBPROCESS *,INT);
  666. extern INT   SQLAPI dbcoltype(DBPROCESS *,INT);
  667. extern DBINT   SQLAPI dbcolutype(DBPROCESS *,SHORT);
  668. extern DBINT   SQLAPI dbdatlen(DBPROCESS *,INT);
  669. extern INT   SQLAPI dbnumcols(DBPROCESS *);
  670. extern DBUBOOL SQLAPI dbcolbrowse(DBPROCESS *,INT);
  671. extern DBUBOOL SQLAPI dbtabbrowse(DBPROCESS *,INT);
  672. extern INT   SQLAPI dbtabcount(DBPROCESS *);
  673. extern INT   SQLAPI dbtsnewlen(DBPROCESS *);
  674. extern RETCODE SQLAPI dbtsput(DBPROCESS *,DBBINARY *,INT,INT,CHAR *);
  675. extern void    SQLAPI dbfreequal(CHAR *);
  676. extern void    SQLAPI dbprhead(DBPROCESS *);
  677. extern RETCODE SQLAPI dbprrow(DBPROCESS *);
  678. extern RETCODE SQLAPI dbtxtsput(DBPROCESS *,DBBINARY *,INT);
  679. extern RETCODE SQLAPI dbwritetext(DBPROCESS *,CHAR *,DBBINARY *,DBTINYINT, DBBINARY *,DBBOOL,DBINT,BYTE *);
  680. extern RETCODE SQLAPI dbmoretext(DBPROCESS *,DBINT,BYTE *);
  681. extern RETCODE SQLAPI dbuse(DBPROCESS *,CHAR *);
  682. extern RETCODE SQLAPI dbbind(DBPROCESS *,INT,INT,DBINT,BYTE *);
  683. extern DBUBOOL SQLAPI dbwillconvert(INT,INT);
  684. extern RETCODE SQLAPI dbsetnull(DBPROCESS *, INT, INT, BYTE *);
  685. extern RETCODE SQLAPI dbaltbind(DBPROCESS *,INT,INT,INT,DBINT,BYTE *);
  686. extern DBINT   SQLAPI dbaltlen(DBPROCESS *,INT,INT);
  687. extern INT   SQLAPI dbalttype(DBPROCESS *,INT,INT);
  688. extern DBINT   SQLAPI dbadlen(DBPROCESS *,INT,INT);
  689. extern INT   SQLAPI dbnumalts(DBPROCESS *,INT);
  690. extern INT   SQLAPI dbaltcolid(DBPROCESS *,INT,INT);
  691. extern INT   SQLAPI dbaltop(DBPROCESS *,INT,INT);
  692. extern INT   SQLAPI dbnumcompute(DBPROCESS *);
  693. extern INT   SQLAPI dbgetoff(DBPROCESS *,DBUSMALLINT,INT);
  694. extern DBINT   SQLAPI dbreadpage(DBPROCESS *,CHAR *,DBINT,BYTE *);
  695. extern RETCODE SQLAPI dbwritepage(DBPROCESS *,CHAR *,DBINT,DBINT,BYTE *);
  696.  
  697. /* remote procedure call functions, these are version 4.2 extensions */
  698. extern DBBOOL  SQLAPI dbhasretstat(DBPROCESS *);
  699. extern INT   SQLAPI dbnumrets(DBPROCESS *);
  700. extern DBINT   SQLAPI dbretlen(DBPROCESS *, INT);
  701. extern DBINT   SQLAPI dbretstatus(DBPROCESS *);
  702. extern INT   SQLAPI dbrettype(DBPROCESS *, INT);
  703. extern RETCODE SQLAPI dbrpcinit(DBPROCESS *, CHAR *, DBSMALLINT);
  704. extern RETCODE SQLAPI dbrpcparam(DBPROCESS*,CHAR *,BYTE,INT,DBINT,DBINT,BYTE *);
  705. extern RETCODE SQLAPI dbrpcsend(DBPROCESS *);
  706. extern void    SQLAPI dbrpwclr(LOGINREC *);
  707. extern RETCODE SQLAPI dbrpwset(LOGINREC *, CHAR *, CHAR *, INT);
  708. extern CHAR * SQLAPI dbretname(DBPROCESS *, INT);
  709. extern BYTE * SQLAPI dbretdata(DBPROCESS *, INT);
  710. extern    void SQLAPI dbsetuserdata(DBPROCESS *, void *);
  711. extern    void * SQLAPI dbgetuserdata(DBPROCESS *);
  712.  
  713. extern CHAR * SQLAPI dbprtype(INT);
  714. extern CHAR * SQLAPI dbchange(DBPROCESS *);
  715. extern CHAR * SQLAPI dbname(DBPROCESS *);
  716. extern BYTE * SQLAPI dbbylist(DBPROCESS *,INT,INT *);
  717. extern BYTE * SQLAPI dbadata(DBPROCESS *,INT,INT);
  718. extern CHAR * SQLAPI dbqual(DBPROCESS *,INT,CHAR *);
  719. extern CHAR * SQLAPI dbtabsource(DBPROCESS *, INT, INT *);
  720. extern CHAR * SQLAPI dbtabname(DBPROCESS *,INT);
  721. extern CHAR * SQLAPI dbcolsource(DBPROCESS *,INT);
  722. extern BYTE * SQLAPI dbdata(DBPROCESS *,INT);
  723. extern BYTE * SQLAPI dbcolname(DBPROCESS *,INT);
  724. extern CHAR * SQLAPI dbgetchar(DBPROCESS *, INT);
  725.  
  726. extern DBBINARY * SQLAPI dbtsnewval(DBPROCESS *);
  727. extern DBBINARY * SQLAPI dbtxptr(DBPROCESS *,INT);
  728. extern DBBINARY * SQLAPI dbtxtimestamp(DBPROCESS *,INT);
  729. extern DBBINARY * SQLAPI dbtxtsnewval(DBPROCESS *);
  730. extern    RETCODE SQLAPI dbsetmaxprocs(SHORT);
  731. extern    SHORT SQLAPI dbgetmaxprocs(void);
  732. extern    BOOL  SQLAPI dbiscount(DBPROCESS *);
  733.  
  734. /* two-phase commit functions */
  735. extern DBPROCESS * SQLAPI open_commit(LOGINREC *,CHAR *);
  736. extern void       SQLAPI close_commit(DBPROCESS *);
  737. extern void       SQLAPI build_xact_string(CHAR *,CHAR *,DBINT,CHAR *);
  738. extern DBINT       SQLAPI start_xact(DBPROCESS *,CHAR *,CHAR *,INT);
  739. extern RETCODE       SQLAPI commit_xact(DBPROCESS *,DBINT);
  740. extern RETCODE       SQLAPI abort_xact(DBPROCESS *,DBINT);
  741. extern RETCODE       SQLAPI remove_xact(DBPROCESS *,DBINT,INT);
  742. extern RETCODE       SQLAPI scan_xact(DBPROCESS *,DBINT);
  743. extern INT       SQLAPI stat_xact(DBPROCESS *,DBINT);
  744.  
  745. /* bulk copy prototypes */
  746. extern DBINT   SQLAPI bcp_batch(DBPROCESS *);
  747. extern RETCODE SQLAPI bcp_bind(DBPROCESS *, BYTE *, INT, DBINT, BYTE *, INT, INT, INT);
  748. extern RETCODE SQLAPI bcp_colfmt(DBPROCESS *, INT, BYTE, INT, DBINT, BYTE *, INT, INT);
  749. extern RETCODE SQLAPI bcp_collen(DBPROCESS *, DBINT, INT);
  750. extern RETCODE SQLAPI bcp_colptr(DBPROCESS *, BYTE *, INT);
  751. extern RETCODE SQLAPI bcp_columns(DBPROCESS *, INT);
  752. extern RETCODE SQLAPI bcp_control(DBPROCESS *, INT, DBINT);
  753. extern DBINT   SQLAPI bcp_done(DBPROCESS *);
  754. extern RETCODE SQLAPI bcp_exec(DBPROCESS *, DBINT *);
  755. extern RETCODE SQLAPI bcp_init(DBPROCESS *, CHAR *, CHAR *, CHAR *, INT);
  756. extern RETCODE SQLAPI bcp_moretext(DBPROCESS *, DBINT, BYTE *);
  757. extern RETCODE SQLAPI bcp_sendrow(DBPROCESS *);
  758. extern RETCODE SQLAPI bcp_setl(LOGINREC *, DBBOOL);
  759. /* Version 4.2 additions */
  760. extern RETCODE SQLAPI bcp_readfmt(DBPROCESS *, CHAR *);
  761. extern RETCODE SQLAPI bcp_writefmt(DBPROCESS *, CHAR  *);
  762.  
  763. /* Functions for referencing the dbproc */
  764. RETCODE SQLAPI dbcmdrow(DBPROCESS *);
  765. DBINT    SQLAPI dbcount(DBPROCESS *);
  766. INT    SQLAPI dbcurcmd(DBPROCESS *);
  767. DBINT    SQLAPI dbcurrow(DBPROCESS *);
  768. DBUBOOL SQLAPI dbdead(DBPROCESS *);
  769. DBINT    SQLAPI dbfirstrow(DBPROCESS *);
  770. DBUBOOL SQLAPI dbisavail(DBPROCESS *);
  771. void    SQLAPI dbsetavail(DBPROCESS *);
  772. DBINT    SQLAPI dblastrow(DBPROCESS *);
  773. void    SQLAPI dblocklib( void );
  774. RETCODE SQLAPI dbmorecmds(DBPROCESS *);
  775. INT    SQLAPI dbnumorders(DBPROCESS *);
  776. RETCODE SQLAPI dbrows(DBPROCESS *);
  777. STATUS    SQLAPI dbrowtype(DBPROCESS *);
  778. void    SQLAPI dbunlocklib( void );
  779. /* Function to return the absolute address of the dbproc */
  780. DBPROCESS * SQLAPI dbabsolute(DBPROCESS *);
  781.  
  782. /* TDS version 4 extensions */
  783. extern    DBINT SQLAPI dbreadtext(DBPROCESS *,void *, DBINT);
  784. extern    DBINT SQLAPI dbaltutype(DBPROCESS *,SHORT,SHORT);
  785. extern    RETCODE SQLAPI dbanullbind(DBPROCESS *,SHORT,SHORT,DBINT  *);
  786. extern    RETCODE SQLAPI dbnullbind(DBPROCESS *,SHORT,DBINT *);
  787. extern    RETCODE SQLAPI dbdatecrack(DBPROCESS *, DBDATEREC *, DBDATETIME *);
  788. extern    DBINT SQLAPI  dbvarylen(DBPROCESS *, SHORT);
  789.  
  790. /* Cursor related functions */
  791. extern    DBCURSOR * SQLAPI dbcursoropen(DBPROCESS *, CHAR  *,
  792.        SHORT,SHORT,USHORT, DBINT *);
  793. extern    RETCODE SQLAPI dbcursorinfo(DBCURSOR *, int *, DBINT *);
  794. extern    RETCODE SQLAPI dbcursorcolinfo(DBCURSOR *, int, char *, int *,
  795.          DBINT *, int *);
  796. extern    RETCODE SQLAPI dbcursorbind(DBCURSOR *, int, int, DBINT, DBINT *,
  797.        CHAR *);
  798. extern    RETCODE SQLAPI dbcursorfetch(DBCURSOR *,SHORT,SHORT);
  799. extern    RETCODE SQLAPI dbcursor(DBCURSOR *, SHORT,SHORT,CHAR *,CHAR *);
  800. extern    RETCODE SQLAPI dbcursorclose(DBCURSOR *);
  801.  
  802. #endif    /* #ifdef DBNTWIN32 */
  803.