home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a025 / 9.ddi / INCLUDE / SQLDB.H next >
Encoding:
C/C++ Source or Header  |  1992-09-11  |  37.7 KB  |  788 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.  
  69. #ifdef DBMSDOS
  70.  
  71. /* error handler */
  72. extern INT ( SQLAPI * DbErrHandler)(DBPROCESS *,INT,INT,INT,CHAR *,CHAR *);
  73.  
  74. /* message handler */
  75. extern INT ( SQLAPI * DbMsgHandler)(DBPROCESS *,DBINT,INT,INT,CHAR *);
  76.  
  77. /* Dblib function prototypes */
  78. extern    LOGINREC *  SQLAPI dblogin(void );
  79. extern    DBPROCESS * SQLAPI dbopen(LOGINREC *,CHAR *);
  80.  
  81. extern void * SQLAPI dberrhandle(INT (SQLAPI * DbErrHandler)(DBPROCESS *,INT,INT,INT,CHAR *,CHAR *));
  82. extern void * SQLAPI dbmsghandle(INT (SQLAPI * DbMsgHandler)(DBPROCESS *, DBINT,INT,INT,CHAR *));
  83.  
  84. extern    BYTE *    SQLAPI dbinit(void);
  85. extern    RETCODE SQLAPI dbsetlname(LOGINREC *,CHAR *,INT);
  86. extern    void    SQLAPI dbfreelogin(LOGINREC *);
  87. extern    RETCODE SQLAPI dbresults(DBPROCESS *);
  88. extern    STATUS    SQLAPI dbnextrow(DBPROCESS *);
  89. extern    void    SQLAPI dbclose(DBPROCESS *);
  90. extern    RETCODE SQLAPI dbcmd(DBPROCESS *,CHAR *);
  91. extern    RETCODE SQLAPI dbfcmd(DBPROCESS *, CHAR *, ...);
  92. extern    INT    SQLAPI dbstrlen(DBPROCESS *);
  93. extern    RETCODE SQLAPI dbstrcpy(DBPROCESS *,INT,INT,CHAR *);
  94. extern    CHAR *    SQLAPI dbgetchar(DBPROCESS *, INT);
  95. extern    RETCODE SQLAPI dbsqlexec(DBPROCESS *);
  96. extern    RETCODE SQLAPI dbsqlok(DBPROCESS *);
  97. extern    RETCODE SQLAPI dbsqlsend(DBPROCESS *);
  98. extern    RETCODE SQLAPI dbcanquery(DBPROCESS *);
  99. extern    STATUS    SQLAPI dbgetrow(DBPROCESS *,DBINT);
  100. extern    void    SQLAPI dbclrbuf(DBPROCESS *,DBINT);
  101. extern    void    SQLAPI dbfreebuf(DBPROCESS *);
  102. extern    RETCODE SQLAPI dbsettime(INT);
  103. extern    INT    SQLAPI dbgettime(void);
  104. extern    RETCODE SQLAPI dbsetlogintime(INT);
  105. extern    DBUBOOL SQLAPI dbdataready(DBPROCESS *);
  106. extern    RETCODE SQLAPI dbcancel(DBPROCESS *);
  107. extern    void    SQLAPI dbexit(void);
  108. extern    RETCODE SQLAPI dbsetopt(DBPROCESS *,INT,CHAR *);
  109. extern    DBUBOOL SQLAPI dbisopt(DBPROCESS *, INT, CHAR *);
  110. extern    RETCODE SQLAPI dbclropt(DBPROCESS *,INT,CHAR *);
  111. extern    INT    SQLAPI dbordercol(DBPROCESS *,INT);
  112. extern    INT    SQLAPI dbconvert(DBPROCESS *,INT,BYTE *,DBINT,INT,BYTE *,DBINT);
  113. extern    DBINT    SQLAPI dbcollen(DBPROCESS *,INT);
  114. extern    BYTE *    SQLAPI dbcolname(DBPROCESS *,INT);
  115. extern    INT    SQLAPI dbcoltype(DBPROCESS *,INT);
  116. extern    DBINT    SQLAPI dbcolutype(DBPROCESS *,INT);
  117. extern    BYTE *    SQLAPI dbdata(DBPROCESS *,INT);
  118. extern    DBINT    SQLAPI dbdatlen(DBPROCESS *,INT);
  119. extern    INT    SQLAPI dbnumcols(DBPROCESS *);
  120. extern    DBUBOOL SQLAPI dbcolbrowse(DBPROCESS *,INT);
  121. extern    CHAR *    SQLAPI dbtabname(DBPROCESS *,INT);
  122. extern    CHAR *    SQLAPI dbcolsource(DBPROCESS *,INT);
  123. extern    DBUBOOL SQLAPI dbtabbrowse(DBPROCESS *,INT);
  124. extern    CHAR *    SQLAPI dbtabsource(DBPROCESS *, INT, INT *);
  125. extern    INT    SQLAPI dbtabcount(DBPROCESS *);
  126. extern    INT    SQLAPI dbtsnewlen(DBPROCESS *);
  127. extern    RETCODE SQLAPI dbtsput(DBPROCESS *,DBBINARY *,INT,INT,CHAR *);
  128. extern    CHAR * SQLAPI dbqual(DBPROCESS *,INT,CHAR *);
  129. extern    void    SQLAPI dbfreequal(CHAR *);
  130. extern    void SQLAPI dbprhead(DBPROCESS *);
  131. extern    RETCODE SQLAPI dbprrow(DBPROCESS *);
  132. extern    RETCODE SQLAPI dbtxtsput(DBPROCESS *,DBBINARY *,INT);
  133. extern    RETCODE SQLAPI dbwritetext(DBPROCESS *,CHAR *,DBBINARY *,DBTINYINT, DBBINARY *,DBBOOL,DBINT,BYTE *);
  134. extern    RETCODE SQLAPI dbmoretext(DBPROCESS *,DBINT,BYTE *);
  135. extern    RETCODE SQLAPI dbuse(DBPROCESS *,CHAR *);
  136. extern    RETCODE SQLAPI dbbind(DBPROCESS *,INT,INT,DBINT,BYTE *);
  137. extern    DBUBOOL SQLAPI dbwillconvert(INT,INT);
  138. extern    RETCODE SQLAPI dbsetnull(DBPROCESS *, INT, INT, BYTE *);
  139. extern    RETCODE SQLAPI dbaltbind(DBPROCESS *,INT,INT,INT,DBINT,BYTE *);
  140. extern    DBINT    SQLAPI dbaltlen(DBPROCESS *,INT,INT);
  141. extern    INT    SQLAPI dbalttype(DBPROCESS *,INT,INT);
  142. extern    BYTE *    SQLAPI dbadata(DBPROCESS *,INT,INT);
  143. extern    DBINT    SQLAPI dbadlen(DBPROCESS *,INT,INT);
  144. extern    INT    SQLAPI dbnumalts(DBPROCESS *,INT);
  145. extern    INT    SQLAPI dbaltcolid(DBPROCESS *,INT,INT);
  146. extern    BYTE *    SQLAPI dbbylist(DBPROCESS *,INT,INT *);
  147. extern    INT    SQLAPI dbaltop(DBPROCESS *,INT,INT);
  148. extern    INT    SQLAPI dbnumcompute(DBPROCESS *);
  149. extern    CHAR *    SQLAPI dbprtype(INT);
  150. extern    CHAR *    SQLAPI dbchange(DBPROCESS *);
  151. extern    CHAR *    SQLAPI dbname(DBPROCESS *);
  152. extern    INT    SQLAPI dbgetoff(DBPROCESS *,DBUSMALLINT,INT);
  153. extern    DBINT    SQLAPI dbreadpage(DBPROCESS *,CHAR far *,DBINT,BYTE *);
  154. extern    RETCODE SQLAPI dbwritepage(DBPROCESS *,CHAR *,DBINT,DBINT,BYTE *);
  155.  
  156. extern    DBBINARY * SQLAPI dbtsnewval(DBPROCESS *);
  157. extern    DBBINARY * SQLAPI dbtxptr(DBPROCESS *,INT);
  158. extern    DBBINARY * SQLAPI dbtxtimestamp(DBPROCESS *,INT);
  159. extern    DBBINARY * SQLAPI dbtxtsnewval(DBPROCESS *);
  160. extern    RETCODE SQLAPI dbsetmaxprocs(SHORT);
  161. extern    SHORT SQLAPI dbgetmaxprocs(void);
  162. extern    BOOL  SQLAPI dbiscount(DBPROCESS *);
  163.  
  164. /* remote procedure call functions, these are version 4.2 extensions */
  165. extern    DBBOOL    SQLAPI dbhasretstat(DBPROCESS *);
  166. extern    INT    SQLAPI dbnumrets(DBPROCESS *);
  167. extern    BYTE *    SQLAPI dbretdata(DBPROCESS *, INT);
  168. extern    DBINT    SQLAPI dbretlen(DBPROCESS *, INT);
  169. extern    CHAR *    SQLAPI dbretname(DBPROCESS *, INT);
  170. extern    DBINT    SQLAPI dbretstatus(DBPROCESS *);
  171. extern    INT    SQLAPI dbrettype(DBPROCESS *, INT);
  172. extern    RETCODE SQLAPI dbrpcinit(DBPROCESS *, CHAR *, DBSMALLINT);
  173. extern    RETCODE SQLAPI dbrpcparam(DBPROCESS *,CHAR *,BYTE,INT,DBINT,DBINT,BYTE *);
  174. extern    RETCODE SQLAPI dbrpcsend(DBPROCESS *);
  175. extern    void    SQLAPI dbrpwclr(LOGINREC *);
  176. extern    RETCODE SQLAPI dbrpwset(LOGINREC *, CHAR *, CHAR *, INT);
  177. extern    void SQLAPI dbsetuserdata(DBPROCESS *, void *);
  178. extern    void * SQLAPI dbgetuserdata(DBPROCESS *);
  179.  
  180. /* two-phase commit functions */
  181. extern DBPROCESS * SQLAPI open_commit(LOGINREC *,CHAR *);
  182. extern void       SQLAPI close_commit(DBPROCESS *);
  183. extern void       SQLAPI build_xact_string(CHAR *,CHAR *,DBINT,CHAR *);
  184. extern DBINT       SQLAPI start_xact(DBPROCESS *,CHAR *,CHAR *,INT);
  185. extern RETCODE       SQLAPI commit_xact(DBPROCESS *,DBINT);
  186. extern RETCODE       SQLAPI abort_xact(DBPROCESS *,DBINT);
  187. extern RETCODE       SQLAPI remove_xact(DBPROCESS *,DBINT,INT);
  188. extern RETCODE       SQLAPI scan_xact(DBPROCESS *,DBINT);
  189. extern INT       SQLAPI stat_xact(DBPROCESS *,DBINT);
  190.  
  191. /* bulk copy prototypes */
  192. extern DBINT   SQLAPI bcp_batch(DBPROCESS *);
  193. extern RETCODE SQLAPI bcp_bind(DBPROCESS *, BYTE *, INT, DBINT, BYTE *, INT, INT, INT);
  194. extern RETCODE SQLAPI bcp_colfmt(DBPROCESS *, INT, BYTE, INT, DBINT, BYTE *, INT, INT);
  195. extern RETCODE SQLAPI bcp_collen(DBPROCESS *, DBINT, INT);
  196. extern RETCODE SQLAPI bcp_colptr(DBPROCESS *, BYTE *, INT);
  197. extern RETCODE SQLAPI bcp_columns(DBPROCESS *, INT);
  198. extern RETCODE SQLAPI bcp_control(DBPROCESS *, INT, DBINT);
  199. extern DBINT   SQLAPI bcp_done(DBPROCESS *);
  200. extern RETCODE SQLAPI bcp_exec(DBPROCESS *, DBINT *);
  201. extern RETCODE SQLAPI bcp_init(DBPROCESS *, CHAR *, CHAR *, CHAR *, INT);
  202. extern RETCODE SQLAPI bcp_moretext(DBPROCESS *, DBINT, BYTE *);
  203. extern RETCODE SQLAPI bcp_sendrow(DBPROCESS *);
  204. extern RETCODE SQLAPI bcp_setl(LOGINREC *, DBBOOL);
  205. /* Version 4.2 additions */
  206. extern RETCODE SQLAPI bcp_readfmt(DBPROCESS *, CHAR *);
  207. extern RETCODE SQLAPI bcp_writefmt(DBPROCESS *, CHAR *);
  208.  
  209.  
  210. /* Functions for referencing the dbproc */
  211. RETCODE SQLAPI dbcmdrow(DBPROCESS *);
  212. DBINT    SQLAPI dbcount(DBPROCESS *);
  213. INT    SQLAPI dbcurcmd(DBPROCESS *);
  214. DBINT    SQLAPI dbcurrow(DBPROCESS *);
  215. DBUBOOL SQLAPI dbdead(DBPROCESS *);
  216. DBINT    SQLAPI dbfirstrow(DBPROCESS *);
  217. DBUBOOL SQLAPI dbisavail(DBPROCESS *);
  218. void    SQLAPI dbsetavail(DBPROCESS *);
  219. DBINT    SQLAPI dblastrow(DBPROCESS *);
  220. RETCODE SQLAPI dbmorecmds(DBPROCESS *);
  221. INT    SQLAPI dbnumorders(DBPROCESS *);
  222. RETCODE SQLAPI dbrows(DBPROCESS *);
  223. STATUS    SQLAPI dbrowtype(DBPROCESS *);
  224.  
  225. /* version 4.2 extensions */
  226. extern    DBINT SQLAPI dbreadtext(DBPROCESS *,void *, DBINT);
  227. extern    DBINT SQLAPI dbaltutype(DBPROCESS *,INT,INT);
  228. extern    RETCODE SQLAPI dbanullbind(DBPROCESS *,INT,INT,DBINT *);
  229. extern    RETCODE SQLAPI dbnullbind(DBPROCESS *,INT,DBINT *);
  230. extern    RETCODE SQLAPI dbdatecrack(DBPROCESS *, DBDATEREC *, DBDATETIME *);
  231. extern    DBBOOL SQLAPI  dbvarylen(DBPROCESS *, INT);
  232.  
  233. /* Cursor related functions */
  234. extern    DBCURSOR * SQLAPI dbcursoropen(DBPROCESS *,CHAR *,INT,INT,UINT,DBINT *);
  235. extern    RETCODE SQLAPI dbcursorinfo(DBCURSOR *, int *, DBINT *);
  236. extern    RETCODE SQLAPI dbcursorcolinfo(DBCURSOR *, int, char *, int *,
  237.          DBINT *, int *);
  238. extern    RETCODE SQLAPI dbcursorbind(DBCURSOR *, int, int, DBINT, DBINT *, CHAR *);
  239. extern    RETCODE SQLAPI dbcursorfetch(DBCURSOR *,INT,INT);
  240. extern    RETCODE SQLAPI dbcursor(DBCURSOR *, INT,INT,CHAR *,CHAR *);
  241. extern    RETCODE SQLAPI dbcursorclose(DBCURSOR *);
  242.  
  243. #endif            /* DBMSDOS */
  244.  
  245. #ifdef DBMSOS2
  246. /* error handler */
  247. extern INT ( SQLAPI * DbErrHandler)(DBPROCESS far *,INT,INT,INT,CHAR far *,CHAR far *);
  248.  
  249. /* message handler */
  250. extern INT ( SQLAPI * DbMsgHandler)(DBPROCESS far *,DBINT,INT,INT,CHAR far *);
  251.  
  252. /* extern USHORT DbTimeOut;    /* time out period in seconds        */
  253.  
  254. /* Dblib function prototypes */
  255. extern LOGINREC far *  SQLAPI dblogin(void );
  256. extern DBPROCESS far * SQLAPI dbopen(LOGINREC far *,CHAR far *);
  257.  
  258. extern void far * SQLAPI dberrhandle(INT (SQLAPI * DbErrHandler)(DBPROCESS far *,INT,INT,INT,CHAR far *,CHAR far *));
  259. extern void far * SQLAPI dbmsghandle(INT (SQLAPI * DbMsgHandler)(DBPROCESS far *,DBINT,INT,INT,CHAR far *));
  260.  
  261. extern BYTE far * SQLAPI dbinit(void);
  262. extern RETCODE      SQLAPI dbsetlname(LOGINREC far *,CHAR far *,INT);
  263. extern void      SQLAPI dbfreelogin(LOGINREC far *);
  264. extern RETCODE      SQLAPI dbresults(DBPROCESS far *);
  265. extern STATUS      SQLAPI dbnextrow(DBPROCESS far *);
  266. extern void      SQLAPI dbclose(DBPROCESS far *);
  267. extern RETCODE      SQLAPI dbcmd(DBPROCESS far *,CHAR far *);
  268. extern RETCODE      SQLAPI dbfcmd(DBPROCESS far *, CHAR far *, ...);
  269. extern INT      SQLAPI dbstrlen(DBPROCESS far *);
  270. extern RETCODE      SQLAPI dbstrcpy(DBPROCESS far *,INT,INT,CHAR far *);
  271. extern CHAR far * SQLAPI dbgetchar(DBPROCESS far *, INT);
  272. extern RETCODE      SQLAPI dbsqlexec(DBPROCESS far *);
  273. extern RETCODE      SQLAPI dbsqlok(DBPROCESS far *);
  274. extern RETCODE      SQLAPI dbsqlsend(DBPROCESS far *);
  275. extern RETCODE      SQLAPI dbcanquery(DBPROCESS far *);
  276. extern STATUS      SQLAPI dbgetrow(DBPROCESS far *,DBINT);
  277. extern void      SQLAPI dbclrbuf(DBPROCESS far *,DBINT);
  278. extern void      SQLAPI dbfreebuf(DBPROCESS far *);
  279. extern RETCODE      SQLAPI dbsettime(INT);
  280. extern INT      SQLAPI dbgettime(void);
  281. extern RETCODE      SQLAPI dbsetlogintime(INT);
  282. extern DBUBOOL      SQLAPI dbdataready(DBPROCESS far *);
  283. extern RETCODE      SQLAPI dbcancel(DBPROCESS far *);
  284. extern void      SQLAPI dbexit(void);
  285. extern RETCODE      SQLAPI dbsetopt(DBPROCESS far *,INT,CHAR far *);
  286. extern DBUBOOL      SQLAPI dbisopt(DBPROCESS far *, INT, CHAR far *);
  287. extern RETCODE      SQLAPI dbclropt(DBPROCESS far *,INT,CHAR far *);
  288. extern INT      SQLAPI dbordercol(DBPROCESS far *,INT);
  289. extern INT      SQLAPI dbconvert(DBPROCESS far *,INT,BYTE far *,DBINT,INT,BYTE far *,DBINT);
  290. extern DBINT      SQLAPI dbcollen(DBPROCESS far *,INT);
  291. extern BYTE far * SQLAPI dbcolname(DBPROCESS far *,INT);
  292. extern INT      SQLAPI dbcoltype(DBPROCESS far *,INT);
  293. extern DBINT      SQLAPI dbcolutype(DBPROCESS *,INT);
  294. extern BYTE far * SQLAPI dbdata(DBPROCESS far *,INT);
  295. extern DBINT      SQLAPI dbdatlen(DBPROCESS far *,INT);
  296. extern INT      SQLAPI dbnumcols(DBPROCESS far *);
  297. extern DBUBOOL      SQLAPI dbcolbrowse(DBPROCESS far *,INT);
  298. extern CHAR far * SQLAPI dbtabname(DBPROCESS far *,INT);
  299. extern CHAR far * SQLAPI dbcolsource(DBPROCESS far *,INT);
  300. extern DBUBOOL      SQLAPI dbtabbrowse(DBPROCESS far *,INT);
  301. extern CHAR far * SQLAPI dbtabsource(DBPROCESS far *, INT, INT far *);
  302. extern INT      SQLAPI dbtabcount(DBPROCESS far *);
  303. extern INT      SQLAPI dbtsnewlen(DBPROCESS far *);
  304. extern RETCODE      SQLAPI dbtsput(DBPROCESS far *,DBBINARY far *,INT,INT,CHAR far *);
  305. extern CHAR far * SQLAPI dbqual(DBPROCESS far *,INT,CHAR far *);
  306. extern void      SQLAPI dbfreequal(CHAR far *);
  307. extern void      SQLAPI dbprhead(DBPROCESS far *);
  308. extern RETCODE      SQLAPI dbprrow(DBPROCESS far *);
  309. extern RETCODE      SQLAPI dbtxtsput(DBPROCESS far *,DBBINARY far *,INT);
  310. extern RETCODE      SQLAPI dbwritetext(DBPROCESS far *,CHAR far *,DBBINARY far *,DBTINYINT, DBBINARY far *,DBBOOL,DBINT,BYTE far *);
  311. extern RETCODE      SQLAPI dbmoretext(DBPROCESS far *,DBINT,BYTE far *);
  312. extern RETCODE      SQLAPI dbuse(DBPROCESS far *,CHAR far *);
  313. extern RETCODE      SQLAPI dbbind(DBPROCESS far *,INT,INT,DBINT,BYTE far *);
  314. extern DBUBOOL      SQLAPI dbwillconvert(INT,INT);
  315. extern RETCODE      SQLAPI dbsetnull(DBPROCESS far *, INT, INT, BYTE far *);
  316. extern RETCODE      SQLAPI dbaltbind(DBPROCESS far *,INT,INT,INT,DBINT,BYTE far *);
  317. extern DBINT      SQLAPI dbaltlen(DBPROCESS far *,INT,INT);
  318. extern INT      SQLAPI dbalttype(DBPROCESS far *,INT,INT);
  319. extern BYTE far * SQLAPI dbadata(DBPROCESS far *,INT,INT);
  320. extern DBINT      SQLAPI dbadlen(DBPROCESS far *,INT,INT);
  321. extern INT      SQLAPI dbnumalts(DBPROCESS far *,INT);
  322. extern INT      SQLAPI dbaltcolid(DBPROCESS far *,INT,INT);
  323. extern BYTE far * SQLAPI dbbylist(DBPROCESS far *,INT,INT far *);
  324. extern INT      SQLAPI dbaltop(DBPROCESS far *,INT,INT);
  325. extern INT      SQLAPI dbnumcompute(DBPROCESS far *);
  326. extern CHAR far * SQLAPI dbprtype(INT);
  327. extern CHAR far * SQLAPI dbchange(DBPROCESS far *);
  328. extern CHAR far * SQLAPI dbname(DBPROCESS far *);
  329. extern INT      SQLAPI dbgetoff(DBPROCESS far *,DBUSMALLINT,INT);
  330. extern DBINT      SQLAPI dbreadpage(DBPROCESS far *,CHAR far *,DBINT,BYTE far *);
  331. extern RETCODE      SQLAPI dbwritepage(DBPROCESS far *,CHAR far *,DBINT,DBINT,BYTE far *);
  332.  
  333. extern DBBOOL      SQLAPI dbhasretstat(DBPROCESS far *);
  334. extern INT      SQLAPI dbnumrets(DBPROCESS far *);
  335. extern BYTE far * SQLAPI dbretdata(DBPROCESS far *, INT);
  336. extern DBINT      SQLAPI dbretlen(DBPROCESS far *, INT);
  337. extern CHAR far * SQLAPI dbretname(DBPROCESS far *, INT);
  338. extern DBINT      SQLAPI dbretstatus(DBPROCESS far *);
  339. extern INT      SQLAPI dbrettype(DBPROCESS far *, INT);
  340. extern RETCODE      SQLAPI dbrpcinit(DBPROCESS far *, CHAR far *, DBSMALLINT);
  341. extern RETCODE      SQLAPI dbrpcparam(DBPROCESS far *,CHAR far *,BYTE,INT,DBINT,DBINT,BYTE far*);
  342. extern RETCODE      SQLAPI dbrpcsend(DBPROCESS far *);
  343. extern void      SQLAPI dbrpwclr(LOGINREC far *);
  344. extern RETCODE      SQLAPI dbrpwset(LOGINREC far *, CHAR far *, CHAR far *, INT);
  345. extern    void SQLAPI dbsetuserdata(DBPROCESS far *, void far *);
  346. extern    void * SQLAPI dbgetuserdata(DBPROCESS far *);
  347.  
  348. extern DBBINARY far * SQLAPI dbtsnewval(DBPROCESS far *);
  349. extern DBBINARY far * SQLAPI dbtxptr(DBPROCESS far *,INT);
  350. extern DBBINARY far * SQLAPI dbtxtimestamp(DBPROCESS far *,INT);
  351. extern DBBINARY far * SQLAPI dbtxtsnewval(DBPROCESS far *);
  352. extern    RETCODE SQLAPI dbsetmaxprocs(SHORT);
  353. extern    SHORT SQLAPI dbgetmaxprocs(void);
  354. extern    BOOL  SQLAPI dbiscount(DBPROCESS far *);
  355.  
  356. /* two-phase commit functions */
  357. extern DBPROCESS far * SQLAPI open_commit(LOGINREC far *,CHAR far *);
  358. extern void           SQLAPI close_commit(DBPROCESS far *);
  359. extern void           SQLAPI build_xact_string(CHAR far *,CHAR far *,DBINT,CHAR far *);
  360. extern DBINT           SQLAPI start_xact(DBPROCESS far *,CHAR far *,CHAR far *,INT);
  361. extern RETCODE           SQLAPI commit_xact(DBPROCESS far *,DBINT);
  362. extern RETCODE           SQLAPI abort_xact(DBPROCESS far *,DBINT);
  363. extern RETCODE           SQLAPI remove_xact(DBPROCESS far *,DBINT,INT);
  364. extern RETCODE           SQLAPI scan_xact(DBPROCESS far *,DBINT);
  365. extern INT           SQLAPI stat_xact(DBPROCESS far *,DBINT);
  366.  
  367. /* bulk copy prototypes */
  368. extern DBINT   SQLAPI bcp_batch(DBPROCESS far *);
  369. extern RETCODE SQLAPI bcp_bind(DBPROCESS far *, BYTE far *, INT, DBINT, BYTE far *, INT, INT, INT);
  370. extern RETCODE SQLAPI bcp_colfmt(DBPROCESS far *, INT, BYTE, INT, DBINT, BYTE far *, INT, INT);
  371. extern RETCODE SQLAPI bcp_collen(DBPROCESS far *, DBINT, INT);
  372. extern RETCODE SQLAPI bcp_colptr(DBPROCESS far *, BYTE far *, INT);
  373. extern RETCODE SQLAPI bcp_columns(DBPROCESS far *, INT);
  374. extern RETCODE SQLAPI bcp_control(DBPROCESS far *, INT, DBINT);
  375. extern DBINT   SQLAPI bcp_done(DBPROCESS far *);
  376. extern RETCODE SQLAPI bcp_exec(DBPROCESS far *, DBINT far *);
  377. extern RETCODE SQLAPI bcp_init(DBPROCESS far *, CHAR far *, CHAR far *, CHAR far *, INT);
  378. extern RETCODE SQLAPI bcp_moretext(DBPROCESS far *, DBINT, BYTE far *);
  379. extern RETCODE SQLAPI bcp_sendrow(DBPROCESS far *);
  380. extern RETCODE SQLAPI bcp_setl(LOGINREC far *, DBBOOL);
  381. /* Version 4.2 additions */
  382. extern RETCODE SQLAPI bcp_readfmt(DBPROCESS far *, CHAR far *);
  383. extern RETCODE SQLAPI bcp_writefmt(DBPROCESS far *, CHAR far *);
  384.  
  385. /* Functions for referencing the dbproc */
  386. RETCODE SQLAPI dbcmdrow(DBPROCESS far *);
  387. DBINT    SQLAPI dbcount(DBPROCESS far *);
  388. INT    SQLAPI dbcurcmd(DBPROCESS far *);
  389. DBINT    SQLAPI dbcurrow(DBPROCESS far *);
  390. DBUBOOL SQLAPI dbdead(DBPROCESS far *);
  391. DBINT    SQLAPI dbfirstrow(DBPROCESS far *);
  392. DBUBOOL SQLAPI dbisavail(DBPROCESS far *);
  393. void    SQLAPI dbsetavail(DBPROCESS far *);
  394. DBINT    SQLAPI dblastrow(DBPROCESS far *);
  395. RETCODE SQLAPI dbmorecmds(DBPROCESS far *);
  396. INT    SQLAPI dbnumorders(DBPROCESS far *);
  397. RETCODE SQLAPI dbrows(DBPROCESS far *);
  398. STATUS    SQLAPI dbrowtype(DBPROCESS far *);
  399.  
  400. /* TDS version 4 extensions */
  401. extern    DBINT SQLAPI dbreadtext(DBPROCESS far *,void far *, DBINT);
  402. extern    DBINT SQLAPI dbaltutype(DBPROCESS far *,SHORT,SHORT);
  403. extern    RETCODE SQLAPI dbanullbind(DBPROCESS far *,INT,INT,DBINT far *);
  404. extern    RETCODE SQLAPI dbnullbind(DBPROCESS far *,INT,DBINT far *);
  405. extern    RETCODE SQLAPI dbdatecrack(DBPROCESS far *, DBDATEREC far *, DBDATETIME far *);
  406. extern    DBBOOL SQLAPI  dbvarylen(DBPROCESS far *, INT);
  407.  
  408. /* Cursor related functions */
  409. extern    DBCURSOR * SQLAPI dbcursoropen(DBPROCESS far *, CHAR far *,
  410.               INT,INT,UINT, DBINT far *);
  411. extern    RETCODE SQLAPI dbcursorinfo(DBCURSOR far *, int far *, DBINT far *);
  412. extern    RETCODE SQLAPI dbcursorcolinfo(DBCURSOR far *, int, char far *, int far *,
  413.          DBINT far *, int far *);
  414. extern    RETCODE SQLAPI dbcursorbind(DBCURSOR far *, int, int, DBINT, DBINT far *, CHAR far *);
  415. extern    RETCODE SQLAPI dbcursorfetch(DBCURSOR far *,INT,INT);
  416. extern    RETCODE SQLAPI dbcursor(DBCURSOR far *, INT,INT,CHAR far *,CHAR far *);
  417. extern    RETCODE SQLAPI dbcursorclose(DBCURSOR far *);
  418.  
  419.  
  420. /* server enumeration function */
  421. extern int SQLAPI dbserverenum(USHORT,CHAR far *,USHORT,USHORT far *);
  422.  
  423. #endif        /* DBMSOS2 */
  424.  
  425. #ifdef DBMSWIN
  426. #ifndef  NEAR
  427. #define  NEAR
  428. #endif
  429. /* Dblib function prototypes */
  430. extern LOGINREC NEAR *    SQLAPI dblogin(void);
  431. extern DBPROCESS NEAR * SQLAPI dbopen(LOGINREC NEAR *,CHAR far *);
  432.  
  433. FARPROC dberrhandle(FARPROC);
  434. FARPROC dbmsghandle(FARPROC);
  435.  
  436. extern BYTE far * SQLAPI dbinit(void);
  437.  
  438. extern void    SQLAPI dbwinexit(void);
  439. extern RETCODE SQLAPI dbsetlname(LOGINREC NEAR *,CHAR far *,INT);
  440. extern void    SQLAPI dbfreelogin(LOGINREC NEAR *);
  441. extern RETCODE SQLAPI dbresults(DBPROCESS NEAR *);
  442. extern STATUS  SQLAPI dbnextrow(DBPROCESS NEAR *);
  443. extern void    SQLAPI dbclose(DBPROCESS NEAR *);
  444. extern RETCODE SQLAPI dbcmd(DBPROCESS NEAR *,CHAR far *);
  445. extern RETCODE SQLAPI dbfcmd(DBPROCESS NEAR *, CHAR far *, ...);
  446. extern INT   SQLAPI dbstrlen(DBPROCESS NEAR *);
  447. extern RETCODE SQLAPI dbstrcpy(DBPROCESS NEAR *,INT,INT,CHAR far *);
  448. extern RETCODE SQLAPI dbsqlexec(DBPROCESS NEAR *);
  449. extern RETCODE SQLAPI dbsqlok(DBPROCESS NEAR *);
  450. extern RETCODE SQLAPI dbsqlsend(DBPROCESS NEAR *);
  451. extern RETCODE SQLAPI dbcanquery(DBPROCESS NEAR *);
  452. extern STATUS  SQLAPI dbgetrow(DBPROCESS NEAR *,DBINT);
  453. extern void    SQLAPI dbclrbuf(DBPROCESS NEAR *,DBINT);
  454. extern void    SQLAPI dbfreebuf(DBPROCESS NEAR *);
  455. extern RETCODE SQLAPI dbsettime(INT);
  456. extern INT     SQLAPI dbgettime(void);
  457. extern RETCODE SQLAPI dbsetlogintime(INT);
  458. extern DBUBOOL SQLAPI dbdataready(DBPROCESS NEAR *);
  459. extern RETCODE SQLAPI dbcancel(DBPROCESS NEAR *);
  460. extern void    SQLAPI dbexit(void);
  461. extern RETCODE SQLAPI dbsetopt(DBPROCESS NEAR *,INT,CHAR far *);
  462. extern DBUBOOL SQLAPI dbisopt(DBPROCESS NEAR *, INT, CHAR far *);
  463. extern RETCODE SQLAPI dbclropt(DBPROCESS NEAR *,INT,CHAR far *);
  464. extern INT   SQLAPI dbordercol(DBPROCESS NEAR *,INT);
  465. extern INT   SQLAPI dbconvert(DBPROCESS NEAR *,INT,BYTE far *,DBINT,INT,BYTE far *,DBINT);
  466. extern DBINT   SQLAPI dbcollen(DBPROCESS NEAR *,INT);
  467. extern INT   SQLAPI dbcoltype(DBPROCESS NEAR *,INT);
  468. extern DBINT   SQLAPI dbcolutype(DBPROCESS NEAR *,INT);
  469. extern DBINT   SQLAPI dbdatlen(DBPROCESS NEAR *,INT);
  470. extern INT   SQLAPI dbnumcols(DBPROCESS NEAR *);
  471. extern DBUBOOL SQLAPI dbcolbrowse(DBPROCESS NEAR *,INT);
  472. extern DBUBOOL SQLAPI dbtabbrowse(DBPROCESS NEAR *,INT);
  473. extern INT   SQLAPI dbtabcount(DBPROCESS NEAR *);
  474. extern INT   SQLAPI dbtsnewlen(DBPROCESS NEAR *);
  475. extern RETCODE SQLAPI dbtsput(DBPROCESS NEAR *,DBBINARY far *,INT,INT,CHAR far *);
  476. extern void    SQLAPI dbfreequal(CHAR far *);
  477. extern void    SQLAPI dbprhead(DBPROCESS NEAR *);
  478. extern RETCODE SQLAPI dbprrow(DBPROCESS NEAR *);
  479. extern RETCODE SQLAPI dbtxtsput(DBPROCESS NEAR *,DBBINARY far *,INT);
  480. extern RETCODE SQLAPI dbwritetext(DBPROCESS NEAR *,CHAR far *,DBBINARY far *,DBTINYINT, DBBINARY far *,DBBOOL,DBINT,BYTE far *);
  481. extern RETCODE SQLAPI dbmoretext(DBPROCESS NEAR *,DBINT,BYTE far *);
  482. extern RETCODE SQLAPI dbuse(DBPROCESS NEAR *,CHAR far *);
  483. extern RETCODE SQLAPI dbbind(DBPROCESS NEAR *,INT,INT,DBINT,BYTE far *);
  484. extern DBUBOOL SQLAPI dbwillconvert(INT,INT);
  485. extern RETCODE SQLAPI dbsetnull(DBPROCESS NEAR *, INT, INT, BYTE far *);
  486. extern RETCODE SQLAPI dbaltbind(DBPROCESS NEAR *,INT,INT,INT,DBINT,BYTE far *);
  487. extern DBINT   SQLAPI dbaltlen(DBPROCESS NEAR *,INT,INT);
  488. extern INT   SQLAPI dbalttype(DBPROCESS NEAR *,INT,INT);
  489. extern DBINT   SQLAPI dbadlen(DBPROCESS NEAR *,INT,INT);
  490. extern INT   SQLAPI dbnumalts(DBPROCESS NEAR *,INT);
  491. extern INT   SQLAPI dbaltcolid(DBPROCESS NEAR *,INT,INT);
  492. extern INT   SQLAPI dbaltop(DBPROCESS NEAR *,INT,INT);
  493. extern INT   SQLAPI dbnumcompute(DBPROCESS NEAR *);
  494. extern INT   SQLAPI dbgetoff(DBPROCESS NEAR *,DBUSMALLINT,INT);
  495. extern DBINT   SQLAPI dbreadpage(DBPROCESS NEAR *,CHAR far *,DBINT,BYTE far *);
  496. extern RETCODE SQLAPI dbwritepage(DBPROCESS NEAR *,CHAR far *,DBINT,DBINT,BYTE far *);
  497.  
  498. /* remote procedure call functions, these are version 4.2 extensions */
  499. extern DBBOOL  SQLAPI dbhasretstat(DBPROCESS NEAR *);
  500. extern INT   SQLAPI dbnumrets(DBPROCESS NEAR *);
  501. extern DBINT   SQLAPI dbretlen(DBPROCESS NEAR *, INT);
  502. extern DBINT   SQLAPI dbretstatus(DBPROCESS NEAR *);
  503. extern INT   SQLAPI dbrettype(DBPROCESS NEAR *, INT);
  504. extern RETCODE SQLAPI dbrpcinit(DBPROCESS NEAR *, CHAR far *, DBSMALLINT);
  505. extern RETCODE SQLAPI dbrpcparam(DBPROCESS*,CHAR far *,BYTE,INT,DBINT,DBINT,BYTE far*);
  506. extern RETCODE SQLAPI dbrpcsend(DBPROCESS NEAR *);
  507. extern void    SQLAPI dbrpwclr(LOGINREC NEAR *);
  508. extern RETCODE SQLAPI dbrpwset(LOGINREC NEAR *, CHAR far *, CHAR far *, INT);
  509. extern CHAR far * SQLAPI dbretname(DBPROCESS NEAR *, INT);
  510. extern BYTE far * SQLAPI dbretdata(DBPROCESS NEAR *, INT);
  511. extern    void SQLAPI dbsetuserdata(DBPROCESS NEAR *, void far *);
  512. extern    void * SQLAPI dbgetuserdata(DBPROCESS NEAR *);
  513.  
  514. extern CHAR far * SQLAPI dbprtype(INT);
  515. extern CHAR far * SQLAPI dbchange(DBPROCESS NEAR *);
  516. extern CHAR far * SQLAPI dbname(DBPROCESS NEAR *);
  517. extern BYTE far * SQLAPI dbbylist(DBPROCESS NEAR *,INT,INT far *);
  518. extern BYTE far * SQLAPI dbadata(DBPROCESS NEAR *,INT,INT);
  519. extern CHAR far * SQLAPI dbqual(DBPROCESS NEAR *,INT,CHAR far *);
  520. extern CHAR far * SQLAPI dbtabsource(DBPROCESS NEAR *, INT, INT far *);
  521. extern CHAR far * SQLAPI dbtabname(DBPROCESS NEAR *,INT);
  522. extern CHAR far * SQLAPI dbcolsource(DBPROCESS NEAR *,INT);
  523. extern BYTE far * SQLAPI dbdata(DBPROCESS NEAR *,INT);
  524. extern BYTE far * SQLAPI dbcolname(DBPROCESS NEAR *,INT);
  525. extern CHAR far * SQLAPI dbgetchar(DBPROCESS NEAR *, INT);
  526.  
  527. extern DBBINARY far * SQLAPI dbtsnewval(DBPROCESS NEAR *);
  528. extern DBBINARY far * SQLAPI dbtxptr(DBPROCESS NEAR *,INT);
  529. extern DBBINARY far * SQLAPI dbtxtimestamp(DBPROCESS NEAR *,INT);
  530. extern DBBINARY far * SQLAPI dbtxtsnewval(DBPROCESS NEAR *);
  531. extern    RETCODE SQLAPI dbsetmaxprocs(SHORT);
  532. extern    SHORT SQLAPI dbgetmaxprocs(void);
  533. extern    BOOL  SQLAPI dbiscount(DBPROCESS NEAR *);
  534.  
  535. /* two-phase commit functions */
  536. extern DBPROCESS NEAR * SQLAPI open_commit(LOGINREC NEAR *,CHAR far *);
  537. extern void       SQLAPI close_commit(DBPROCESS NEAR *);
  538. extern void       SQLAPI build_xact_string(CHAR far *,CHAR far *,DBINT,CHAR far *);
  539. extern DBINT       SQLAPI start_xact(DBPROCESS NEAR *,CHAR far *,CHAR far *,INT);
  540. extern RETCODE       SQLAPI commit_xact(DBPROCESS NEAR *,DBINT);
  541. extern RETCODE       SQLAPI abort_xact(DBPROCESS NEAR *,DBINT);
  542. extern RETCODE       SQLAPI remove_xact(DBPROCESS NEAR *,DBINT,INT);
  543. extern RETCODE       SQLAPI scan_xact(DBPROCESS NEAR *,DBINT);
  544. extern INT       SQLAPI stat_xact(DBPROCESS NEAR *,DBINT);
  545.  
  546. /* bulk copy prototypes */
  547. extern DBINT   SQLAPI bcp_batch(DBPROCESS NEAR *);
  548. extern RETCODE SQLAPI bcp_bind(DBPROCESS NEAR *, BYTE far *, INT, DBINT, BYTE far *, INT, INT, INT);
  549. extern RETCODE SQLAPI bcp_colfmt(DBPROCESS NEAR *, INT, BYTE, INT, DBINT, BYTE far *, INT, INT);
  550. extern RETCODE SQLAPI bcp_collen(DBPROCESS NEAR *, DBINT, INT);
  551. extern RETCODE SQLAPI bcp_colptr(DBPROCESS NEAR *, BYTE far *, INT);
  552. extern RETCODE SQLAPI bcp_columns(DBPROCESS NEAR *, INT);
  553. extern RETCODE SQLAPI bcp_control(DBPROCESS NEAR *, INT, DBINT);
  554. extern DBINT   SQLAPI bcp_done(DBPROCESS NEAR *);
  555. extern RETCODE SQLAPI bcp_exec(DBPROCESS NEAR *, DBINT far *);
  556. extern RETCODE SQLAPI bcp_init(DBPROCESS NEAR *, CHAR far *, CHAR far *, CHAR far *, INT);
  557. extern RETCODE SQLAPI bcp_moretext(DBPROCESS NEAR *, DBINT, BYTE far *);
  558. extern RETCODE SQLAPI bcp_sendrow(DBPROCESS NEAR *);
  559. extern RETCODE SQLAPI bcp_setl(LOGINREC NEAR *, DBBOOL);
  560. /* Version 4.2 additions */
  561. extern RETCODE SQLAPI bcp_readfmt(DBPROCESS NEAR *, CHAR far *);
  562. extern RETCODE SQLAPI bcp_writefmt(DBPROCESS NEAR *, CHAR far *);
  563.  
  564. /* Functions for referencing the dbproc */
  565. RETCODE SQLAPI dbcmdrow(DBPROCESS NEAR *);
  566. DBINT    SQLAPI dbcount(DBPROCESS NEAR *);
  567. INT    SQLAPI dbcurcmd(DBPROCESS NEAR *);
  568. DBINT    SQLAPI dbcurrow(DBPROCESS NEAR *);
  569. DBUBOOL SQLAPI dbdead(DBPROCESS NEAR *);
  570. DBINT    SQLAPI dbfirstrow(DBPROCESS NEAR *);
  571. DBUBOOL SQLAPI dbisavail(DBPROCESS NEAR *);
  572. void    SQLAPI dbsetavail(DBPROCESS NEAR *);
  573. DBINT    SQLAPI dblastrow(DBPROCESS NEAR *);
  574. void    SQLAPI dblocklib( void );
  575. RETCODE SQLAPI dbmorecmds(DBPROCESS NEAR *);
  576. INT    SQLAPI dbnumorders(DBPROCESS NEAR *);
  577. RETCODE SQLAPI dbrows(DBPROCESS NEAR *);
  578. STATUS    SQLAPI dbrowtype(DBPROCESS NEAR *);
  579. void    SQLAPI dbunlocklib( void );
  580. /* Function to return the absolute address of the dbproc */
  581. DBPROCESS far * SQLAPI dbabsolute(DBPROCESS NEAR *);
  582.  
  583. /* TDS version 4 extensions */
  584. extern    DBINT SQLAPI dbreadtext(DBPROCESS NEAR *,void far *, DBINT);
  585. extern    DBINT SQLAPI dbaltutype(DBPROCESS NEAR *,SHORT,SHORT);
  586. extern    RETCODE SQLAPI dbanullbind(DBPROCESS NEAR *,INT,INT,DBINT far *);
  587. extern    RETCODE SQLAPI dbnullbind(DBPROCESS NEAR *,INT,DBINT far *);
  588. extern    RETCODE SQLAPI dbdatecrack(DBPROCESS NEAR *, DBDATEREC far *, DBDATETIME far *);
  589. extern    DBBOOL SQLAPI  dbvarylen(DBPROCESS NEAR *, INT);
  590.  
  591. /* Cursor related functions */
  592. extern    DBCURSOR * SQLAPI dbcursoropen(DBPROCESS NEAR *, CHAR far *,
  593.        INT,INT,UINT, DBINT far *);
  594. extern    RETCODE SQLAPI dbcursorinfo(DBCURSOR NEAR *, int far *, DBINT far *);
  595. extern    RETCODE SQLAPI dbcursorcolinfo(DBCURSOR NEAR *, int, char far *, int far *,
  596.          DBINT far *, int far *);
  597. extern    RETCODE SQLAPI dbcursorbind(DBCURSOR NEAR *, int, int, DBINT, DBINT far *,
  598.        CHAR far *);
  599. extern    RETCODE SQLAPI dbcursorfetch(DBCURSOR NEAR *,INT,INT);
  600. extern    RETCODE SQLAPI dbcursor(DBCURSOR NEAR *, INT,INT,CHAR far *,CHAR far *);
  601. extern    RETCODE SQLAPI dbcursorclose(DBCURSOR NEAR *);
  602.  
  603. /* server enumeration function */
  604. extern int SQLAPI dbserverenum(USHORT,CHAR far *,USHORT,USHORT far *);
  605.  
  606. #endif    /* #ifdef DBMSWIN */
  607.  
  608. #ifdef DBNTWIN32
  609.  
  610. typedef  int (SQLAPI *SQLFARPROC)();
  611. /* Dblib function prototypes */
  612. extern LOGINREC *  SQLAPI dblogin(void);
  613. extern DBPROCESS * SQLAPI dbopen(LOGINREC *,CHAR *);
  614.  
  615. FARPROC dberrhandle(SQLFARPROC);
  616. FARPROC dbmsghandle(SQLFARPROC);
  617.  
  618. extern BYTE * SQLAPI dbinit(void);
  619.  
  620. extern void    SQLAPI dbwinexit(void);
  621. extern RETCODE SQLAPI dbsetlname(LOGINREC *,CHAR *,INT);
  622. extern void    SQLAPI dbfreelogin(LOGINREC *);
  623. extern RETCODE SQLAPI dbresults(DBPROCESS *);
  624. extern STATUS  SQLAPI dbnextrow(DBPROCESS *);
  625. extern void    SQLAPI dbclose(DBPROCESS  *);
  626. extern RETCODE SQLAPI dbcmd(DBPROCESS *,CHAR *);
  627. extern RETCODE SQLAPI dbfcmd(DBPROCESS *, CHAR *, ...);
  628. extern INT   SQLAPI dbstrlen(DBPROCESS *);
  629. extern RETCODE SQLAPI dbstrcpy(DBPROCESS *,INT,INT,CHAR *);
  630. extern RETCODE SQLAPI dbsqlexec(DBPROCESS *);
  631. extern RETCODE SQLAPI dbsqlok(DBPROCESS *);
  632. extern RETCODE SQLAPI dbsqlsend(DBPROCESS *);
  633. extern RETCODE SQLAPI dbcanquery(DBPROCESS *);
  634. extern STATUS  SQLAPI dbgetrow(DBPROCESS *,DBINT);
  635. extern void    SQLAPI dbclrbuf(DBPROCESS *,DBINT);
  636. extern void    SQLAPI dbfreebuf(DBPROCESS *);
  637. extern RETCODE SQLAPI dbsettime(INT);
  638. extern INT     SQLAPI dbgettime(void);
  639. extern RETCODE SQLAPI dbsetlogintime(INT);
  640. extern DBUBOOL SQLAPI dbdataready(DBPROCESS *);
  641. extern RETCODE SQLAPI dbcancel(DBPROCESS *);
  642. extern void    SQLAPI dbexit(void);
  643. extern RETCODE SQLAPI dbsetopt(DBPROCESS *,INT,CHAR *);
  644. extern DBUBOOL SQLAPI dbisopt(DBPROCESS *, INT, CHAR *);
  645. extern RETCODE SQLAPI dbclropt(DBPROCESS *,INT,CHAR *);
  646. extern INT   SQLAPI dbordercol(DBPROCESS *,INT);
  647. extern INT   SQLAPI dbconvert(DBPROCESS *,INT,BYTE *,DBINT,INT,BYTE *,DBINT);
  648. extern DBINT   SQLAPI dbcollen(DBPROCESS *,INT);
  649. extern INT   SQLAPI dbcoltype(DBPROCESS *,INT);
  650. extern DBINT   SQLAPI dbcolutype(DBPROCESS *,INT);
  651. extern DBINT   SQLAPI dbdatlen(DBPROCESS *,INT);
  652. extern INT   SQLAPI dbnumcols(DBPROCESS *);
  653. extern DBUBOOL SQLAPI dbcolbrowse(DBPROCESS *,INT);
  654. extern DBUBOOL SQLAPI dbtabbrowse(DBPROCESS *,INT);
  655. extern INT   SQLAPI dbtabcount(DBPROCESS *);
  656. extern INT   SQLAPI dbtsnewlen(DBPROCESS *);
  657. extern RETCODE SQLAPI dbtsput(DBPROCESS *,DBBINARY *,INT,INT,CHAR *);
  658. extern void    SQLAPI dbfreequal(CHAR *);
  659. extern void    SQLAPI dbprhead(DBPROCESS *);
  660. extern RETCODE SQLAPI dbprrow(DBPROCESS *);
  661. extern RETCODE SQLAPI dbtxtsput(DBPROCESS *,DBBINARY *,INT);
  662. extern RETCODE SQLAPI dbwritetext(DBPROCESS *,CHAR *,DBBINARY *,DBTINYINT, DBBINARY *,DBBOOL,DBINT,BYTE *);
  663. extern RETCODE SQLAPI dbmoretext(DBPROCESS *,DBINT,BYTE *);
  664. extern RETCODE SQLAPI dbuse(DBPROCESS *,CHAR *);
  665. extern RETCODE SQLAPI dbbind(DBPROCESS *,INT,INT,DBINT,BYTE *);
  666. extern DBUBOOL SQLAPI dbwillconvert(INT,INT);
  667. extern RETCODE SQLAPI dbsetnull(DBPROCESS *, INT, INT, BYTE *);
  668. extern RETCODE SQLAPI dbaltbind(DBPROCESS *,INT,INT,INT,DBINT,BYTE *);
  669. extern DBINT   SQLAPI dbaltlen(DBPROCESS *,INT,INT);
  670. extern INT   SQLAPI dbalttype(DBPROCESS *,INT,INT);
  671. extern DBINT   SQLAPI dbadlen(DBPROCESS *,INT,INT);
  672. extern INT   SQLAPI dbnumalts(DBPROCESS *,INT);
  673. extern INT   SQLAPI dbaltcolid(DBPROCESS *,INT,INT);
  674. extern INT   SQLAPI dbaltop(DBPROCESS *,INT,INT);
  675. extern INT   SQLAPI dbnumcompute(DBPROCESS *);
  676. extern INT   SQLAPI dbgetoff(DBPROCESS *,DBUSMALLINT,INT);
  677. extern DBINT   SQLAPI dbreadpage(DBPROCESS *,CHAR *,DBINT,BYTE *);
  678. extern RETCODE SQLAPI dbwritepage(DBPROCESS *,CHAR *,DBINT,DBINT,BYTE *);
  679.  
  680. /* remote procedure call functions, these are version 4.2 extensions */
  681. extern DBBOOL  SQLAPI dbhasretstat(DBPROCESS *);
  682. extern INT   SQLAPI dbnumrets(DBPROCESS *);
  683. extern DBINT   SQLAPI dbretlen(DBPROCESS *, INT);
  684. extern DBINT   SQLAPI dbretstatus(DBPROCESS *);
  685. extern INT   SQLAPI dbrettype(DBPROCESS *, INT);
  686. extern RETCODE SQLAPI dbrpcinit(DBPROCESS *, CHAR *, DBSMALLINT);
  687. extern RETCODE SQLAPI dbrpcparam(DBPROCESS*,CHAR *,BYTE,INT,DBINT,DBINT,BYTE *);
  688. extern RETCODE SQLAPI dbrpcsend(DBPROCESS *);
  689. extern void    SQLAPI dbrpwclr(LOGINREC *);
  690. extern RETCODE SQLAPI dbrpwset(LOGINREC *, CHAR *, CHAR *, INT);
  691. extern CHAR * SQLAPI dbretname(DBPROCESS *, INT);
  692. extern BYTE * SQLAPI dbretdata(DBPROCESS *, INT);
  693. extern    void SQLAPI dbsetuserdata(DBPROCESS *, void *);
  694. extern    void * SQLAPI dbgetuserdata(DBPROCESS *);
  695.  
  696. extern CHAR * SQLAPI dbprtype(INT);
  697. extern CHAR * SQLAPI dbchange(DBPROCESS *);
  698. extern CHAR * SQLAPI dbname(DBPROCESS *);
  699. extern BYTE * SQLAPI dbbylist(DBPROCESS *,INT,INT *);
  700. extern BYTE * SQLAPI dbadata(DBPROCESS *,INT,INT);
  701. extern CHAR * SQLAPI dbqual(DBPROCESS *,INT,CHAR *);
  702. extern CHAR * SQLAPI dbtabsource(DBPROCESS *, INT, INT *);
  703. extern CHAR * SQLAPI dbtabname(DBPROCESS *,INT);
  704. extern CHAR * SQLAPI dbcolsource(DBPROCESS *,INT);
  705. extern BYTE * SQLAPI dbdata(DBPROCESS *,INT);
  706. extern BYTE * SQLAPI dbcolname(DBPROCESS *,INT);
  707. extern CHAR * SQLAPI dbgetchar(DBPROCESS *, INT);
  708.  
  709. extern DBBINARY * SQLAPI dbtsnewval(DBPROCESS *);
  710. extern DBBINARY * SQLAPI dbtxptr(DBPROCESS *,INT);
  711. extern DBBINARY * SQLAPI dbtxtimestamp(DBPROCESS *,INT);
  712. extern DBBINARY * SQLAPI dbtxtsnewval(DBPROCESS *);
  713. extern    RETCODE SQLAPI dbsetmaxprocs(SHORT);
  714. extern    SHORT SQLAPI dbgetmaxprocs(void);
  715. extern    BOOL  SQLAPI dbiscount(DBPROCESS *);
  716.  
  717. /* two-phase commit functions */
  718. extern DBPROCESS * SQLAPI open_commit(LOGINREC *,CHAR *);
  719. extern void       SQLAPI close_commit(DBPROCESS *);
  720. extern void       SQLAPI build_xact_string(CHAR *,CHAR *,DBINT,CHAR *);
  721. extern DBINT       SQLAPI start_xact(DBPROCESS *,CHAR *,CHAR *,INT);
  722. extern RETCODE       SQLAPI commit_xact(DBPROCESS *,DBINT);
  723. extern RETCODE       SQLAPI abort_xact(DBPROCESS *,DBINT);
  724. extern RETCODE       SQLAPI remove_xact(DBPROCESS *,DBINT,INT);
  725. extern RETCODE       SQLAPI scan_xact(DBPROCESS *,DBINT);
  726. extern INT       SQLAPI stat_xact(DBPROCESS *,DBINT);
  727.  
  728. /* bulk copy prototypes */
  729. extern DBINT   SQLAPI bcp_batch(DBPROCESS *);
  730. extern RETCODE SQLAPI bcp_bind(DBPROCESS *, BYTE *, INT, DBINT, BYTE *, INT, INT, INT);
  731. extern RETCODE SQLAPI bcp_colfmt(DBPROCESS *, INT, BYTE, INT, DBINT, BYTE *, INT, INT);
  732. extern RETCODE SQLAPI bcp_collen(DBPROCESS *, DBINT, INT);
  733. extern RETCODE SQLAPI bcp_colptr(DBPROCESS *, BYTE *, INT);
  734. extern RETCODE SQLAPI bcp_columns(DBPROCESS *, INT);
  735. extern RETCODE SQLAPI bcp_control(DBPROCESS *, INT, DBINT);
  736. extern DBINT   SQLAPI bcp_done(DBPROCESS *);
  737. extern RETCODE SQLAPI bcp_exec(DBPROCESS *, DBINT *);
  738. extern RETCODE SQLAPI bcp_init(DBPROCESS *, CHAR *, CHAR *, CHAR *, INT);
  739. extern RETCODE SQLAPI bcp_moretext(DBPROCESS *, DBINT, BYTE *);
  740. extern RETCODE SQLAPI bcp_sendrow(DBPROCESS *);
  741. extern RETCODE SQLAPI bcp_setl(LOGINREC *, DBBOOL);
  742. /* Version 4.2 additions */
  743. extern RETCODE SQLAPI bcp_readfmt(DBPROCESS *, CHAR *);
  744. extern RETCODE SQLAPI bcp_writefmt(DBPROCESS *, CHAR  *);
  745.  
  746. /* Functions for referencing the dbproc */
  747. RETCODE SQLAPI dbcmdrow(DBPROCESS *);
  748. DBINT    SQLAPI dbcount(DBPROCESS *);
  749. INT    SQLAPI dbcurcmd(DBPROCESS *);
  750. DBINT    SQLAPI dbcurrow(DBPROCESS *);
  751. DBUBOOL SQLAPI dbdead(DBPROCESS *);
  752. DBINT    SQLAPI dbfirstrow(DBPROCESS *);
  753. DBUBOOL SQLAPI dbisavail(DBPROCESS *);
  754. void    SQLAPI dbsetavail(DBPROCESS *);
  755. DBINT    SQLAPI dblastrow(DBPROCESS *);
  756. void    SQLAPI dblocklib( void );
  757. RETCODE SQLAPI dbmorecmds(DBPROCESS *);
  758. INT    SQLAPI dbnumorders(DBPROCESS *);
  759. RETCODE SQLAPI dbrows(DBPROCESS *);
  760. STATUS    SQLAPI dbrowtype(DBPROCESS *);
  761. void    SQLAPI dbunlocklib( void );
  762. /* Function to return the absolute address of the dbproc */
  763. DBPROCESS * SQLAPI dbabsolute(DBPROCESS *);
  764.  
  765. /* TDS version 4 extensions */
  766. extern    DBINT SQLAPI dbreadtext(DBPROCESS *,void *, DBINT);
  767. extern    DBINT SQLAPI dbaltutype(DBPROCESS *,SHORT,SHORT);
  768. extern    RETCODE SQLAPI dbanullbind(DBPROCESS *,SHORT,SHORT,DBINT  *);
  769. extern    RETCODE SQLAPI dbnullbind(DBPROCESS *,SHORT,DBINT *);
  770. extern    RETCODE SQLAPI dbdatecrack(DBPROCESS *, DBDATEREC *, DBDATETIME *);
  771. extern    DBBOOL SQLAPI  dbvarylen(DBPROCESS *, INT);
  772.  
  773. /* Cursor related functions */
  774. extern    DBCURSOR * SQLAPI dbcursoropen(DBPROCESS *, CHAR  *,
  775.        INT,INT,UINT, DBINT *);
  776. extern    RETCODE SQLAPI dbcursorinfo(DBCURSOR *, int *, DBINT *);
  777. extern    RETCODE SQLAPI dbcursorcolinfo(DBCURSOR *, int, char *, int *,
  778.          DBINT *, int *);
  779. extern    RETCODE SQLAPI dbcursorbind(DBCURSOR *, int, int, DBINT, DBINT *,
  780.        CHAR *);
  781. extern    RETCODE SQLAPI dbcursorfetch(DBCURSOR *,INT,INT);
  782. extern    RETCODE SQLAPI dbcursor(DBCURSOR *, INT,INT,CHAR *,CHAR *);
  783. extern    RETCODE SQLAPI dbcursorclose(DBCURSOR *);
  784.  
  785. /* server enumeration function */
  786. extern int SQLAPI dbserverenum(USHORT,CHAR far *,USHORT,USHORT far *);
  787. #endif    /* #ifdef DBNTWIN32 */
  788.