home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / sqldb.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  13KB  |  256 lines

  1. #ifndef _INC_SQLDB
  2. #define _INC_SQLDB
  3.  
  4. #ifdef __cplusplus
  5.     extern "C" {
  6. #endif
  7.  
  8. /*****************************************************************************
  9. *                                                                            *
  10. *       SQLDB.H - DB-Library header file for the Microsoft SQL Server.       *
  11. *                                                                            *
  12. *     Copyright (c) 1989 - 1995 by Microsoft Corp.  All rights reserved.     *
  13. *                                                                            *
  14. *****************************************************************************/
  15.  
  16. // Macros for setting the PLOGINREC
  17. #define DBSETLHOST(a,b)    dbsetlname   ((a), (b), DBSETHOST)
  18. #define DBSETLUSER(a,b)    dbsetlname   ((a), (b), DBSETUSER)
  19. #define DBSETLPWD(a,b)     dbsetlname   ((a), (b), DBSETPWD)
  20. #define DBSETLAPP(a,b)     dbsetlname   ((a), (b), DBSETAPP)
  21. #define BCP_SETL(a,b)      bcp_setl     ((a), (b))
  22. #define DBSETLNATLANG(a,b) dbsetlname   ((a), (b), DBSETLANG)
  23. #define DBSETLPACKET(a,b)  dbsetlpacket ((a), (b))
  24. #define DBSETLSECURE(a)    dbsetlname   ((a), 0,   DBSETSECURE)
  25. #define DBSETLVERSION(a,b) dbsetlname   ((a), 0,  (b))
  26. #define DBSETLTIME(a,b)        dbsetlname    ((a), (LPCSTR)(ULONG)(b), DBSETLOGINTIME)
  27. #define DBSETLFALLBACK(a,b) dbsetlname   ((a), (b),   DBSETFALLBACK)
  28.  
  29. /*****************************************************************************
  30. * Windows 3.x and Non-Windows 3.x differences.                               *
  31. *****************************************************************************/
  32.  
  33. #ifdef DBMSWIN
  34.  
  35. extern void SQLAPI dbwinexit(void);
  36.  
  37. void SQLAPI dblocklib (void);
  38. void SQLAPI dbunlocklib (void);
  39.  
  40. #define DBLOCKLIB()   dblocklib()
  41. #define DBUNLOCKLIB() dbunlocklib()
  42.  
  43. #define DBERRHANDLE_PROC FARPROC
  44. #define DBMSGHANDLE_PROC FARPROC
  45.  
  46. extern DBERRHANDLE_PROC dberrhandle (DBERRHANDLE_PROC);
  47. extern DBMSGHANDLE_PROC dbmsghandle (DBMSGHANDLE_PROC);
  48.  
  49. #else
  50.  
  51. #define dbwinexit()
  52.  
  53. #define DBLOCKLIB()
  54. #define DBUNLOCKLIB()
  55.  
  56. typedef INT (SQLAPI *DBERRHANDLE_PROC)(PDBPROCESS, INT, INT, INT, LPCSTR, LPCSTR);
  57. typedef INT (SQLAPI *DBMSGHANDLE_PROC)(PDBPROCESS, DBINT, INT, INT, LPCSTR, LPCSTR, LPCSTR, DBUSMALLINT);
  58.  
  59. extern DBERRHANDLE_PROC SQLAPI dberrhandle(DBERRHANDLE_PROC);
  60. extern DBMSGHANDLE_PROC SQLAPI dbmsghandle(DBMSGHANDLE_PROC);
  61.  
  62. extern DBERRHANDLE_PROC SQLAPI dbprocerrhandle(PDBHANDLE, DBERRHANDLE_PROC);
  63. extern DBMSGHANDLE_PROC SQLAPI dbprocmsghandle(PDBHANDLE, DBMSGHANDLE_PROC);
  64.  
  65.  
  66. #endif
  67.  
  68.  
  69. /*****************************************************************************
  70. * Function Prototypes                                                        *
  71. *****************************************************************************/
  72.  
  73. // Functions macros
  74. #define DBCMDROW(a)      dbcmdrow(a)
  75. #define DBCOUNT(a)       dbcount (a)
  76. #define DBCURCMD(a)      dbcurcmd(a)
  77. #define DBCURROW(a)      dbcurrow(a)
  78. #define DBDEAD(a)        dbdead(a)
  79. #define DBFIRSTROW(a)    dbfirstrow(a)
  80. #define DBGETTIME()      dbgettime()
  81. #define DBISAVAIL(a)     dbisavail(a)
  82. #define DBLASTROW(a)     dblastrow(a)
  83. #define DBMORECMDS(a)    dbmorecmds(a)
  84. #define DBNUMORDERS(a)   dbnumorders(a)
  85. #define dbrbuf(a)        ((DBINT)dbdataready(a))
  86. #define DBRBUF(a)        ((DBINT)dbdataready(a))
  87. #define DBROWS(a)        dbrows (a)
  88. #define DBROWTYPE(a)     dbrowtype (a)
  89.  
  90. // Two-phase commit functions
  91. extern RETCODE      SQLAPI abort_xact (PDBPROCESS, DBINT);
  92. extern void         SQLAPI build_xact_string (LPCSTR, LPCSTR, DBINT, LPSTR);
  93. extern void         SQLAPI close_commit (PDBPROCESS);
  94. extern RETCODE      SQLAPI commit_xact (PDBPROCESS, DBINT);
  95. extern PDBPROCESS   SQLAPI open_commit (PLOGINREC, LPCSTR);
  96. extern RETCODE      SQLAPI remove_xact (PDBPROCESS, DBINT, INT);
  97. extern RETCODE      SQLAPI scan_xact (PDBPROCESS, DBINT);
  98. extern DBINT        SQLAPI start_xact (PDBPROCESS, LPCSTR, LPCSTR, INT);
  99. extern INT          SQLAPI stat_xact (PDBPROCESS, DBINT);
  100.  
  101. // BCP functions
  102. extern DBINT        SQLAPI bcp_batch (PDBPROCESS);
  103. extern RETCODE      SQLAPI bcp_bind (PDBPROCESS, LPCBYTE, INT, DBINT, LPCBYTE, INT, INT, INT);
  104. extern RETCODE      SQLAPI bcp_colfmt (PDBPROCESS, INT, BYTE, INT, DBINT, LPCBYTE, INT, INT);
  105. extern RETCODE      SQLAPI bcp_collen (PDBPROCESS, DBINT, INT);
  106. extern RETCODE      SQLAPI bcp_colptr (PDBPROCESS, LPCBYTE, INT);
  107. extern RETCODE      SQLAPI bcp_columns (PDBPROCESS, INT);
  108. extern RETCODE      SQLAPI bcp_control (PDBPROCESS, INT, DBINT);
  109. extern DBINT        SQLAPI bcp_done (PDBPROCESS);
  110. extern RETCODE      SQLAPI bcp_exec (PDBPROCESS, LPDBINT);
  111. extern RETCODE      SQLAPI bcp_init (PDBPROCESS, LPCSTR, LPCSTR, LPCSTR, INT);
  112. extern RETCODE      SQLAPI bcp_moretext (PDBPROCESS, DBINT, LPCBYTE);
  113. extern RETCODE      SQLAPI bcp_readfmt (PDBPROCESS, LPCSTR);
  114. extern RETCODE      SQLAPI bcp_sendrow (PDBPROCESS);
  115. extern RETCODE      SQLAPI bcp_setl (PLOGINREC, BOOL);
  116. extern RETCODE      SQLAPI bcp_writefmt (PDBPROCESS, LPCSTR);
  117.  
  118. // Standard DB-Library functions
  119. extern LPCBYTE      SQLAPI dbadata (PDBPROCESS, INT, INT);
  120. extern DBINT        SQLAPI dbadlen (PDBPROCESS, INT, INT);
  121. extern RETCODE      SQLAPI dbaltbind (PDBPROCESS, INT, INT, INT, DBINT, LPCBYTE);
  122. extern INT          SQLAPI dbaltcolid (PDBPROCESS, INT, INT);
  123. extern DBINT        SQLAPI dbaltlen (PDBPROCESS, INT, INT);
  124. extern INT          SQLAPI dbaltop (PDBPROCESS, INT, INT);
  125. extern INT          SQLAPI dbalttype (PDBPROCESS, INT, INT);
  126. extern DBINT        SQLAPI dbaltutype (PDBPROCESS, INT, INT);
  127. extern RETCODE      SQLAPI dbanullbind (PDBPROCESS, INT, INT, LPCDBINT);
  128. extern RETCODE      SQLAPI dbbind (PDBPROCESS, INT, INT, DBINT, LPBYTE);
  129. extern LPCBYTE      SQLAPI dbbylist (PDBPROCESS, INT, LPINT);
  130. extern RETCODE      SQLAPI dbcancel (PDBPROCESS);
  131. extern RETCODE      SQLAPI dbcanquery (PDBPROCESS);
  132. extern LPCSTR       SQLAPI dbchange (PDBPROCESS);
  133. extern RETCODE      SQLAPI dbclose (PDBPROCESS);
  134. extern void         SQLAPI dbclrbuf (PDBPROCESS, DBINT);
  135. extern RETCODE      SQLAPI dbclropt (PDBPROCESS, INT, LPCSTR);
  136. extern RETCODE      SQLAPI dbcmd (PDBPROCESS, LPCSTR);
  137. extern RETCODE      SQLAPI dbcmdrow (PDBPROCESS);
  138. extern BOOL         SQLAPI dbcolbrowse (PDBPROCESS, INT);
  139. extern RETCODE      SQLAPI dbcolinfo (PDBHANDLE, INT, INT, INT, LPDBCOL);
  140. extern DBINT        SQLAPI dbcollen (PDBPROCESS, INT);
  141. extern LPCSTR       SQLAPI dbcolname (PDBPROCESS, INT);
  142. extern LPCSTR       SQLAPI dbcolsource (PDBPROCESS, INT);
  143. extern INT          SQLAPI dbcoltype (PDBPROCESS, INT);
  144. extern DBINT        SQLAPI dbcolutype (PDBPROCESS, INT);
  145. extern INT          SQLAPI dbconvert (PDBPROCESS, INT, LPCBYTE, DBINT, INT, LPBYTE, DBINT);
  146. extern DBINT        SQLAPI dbcount (PDBPROCESS);
  147. extern INT          SQLAPI dbcurcmd (PDBPROCESS);
  148. extern DBINT        SQLAPI dbcurrow (PDBPROCESS);
  149. extern RETCODE      SQLAPI dbcursor (PDBCURSOR, INT, INT, LPCSTR, LPCSTR);
  150. extern RETCODE      SQLAPI dbcursorbind (PDBCURSOR, INT, INT, DBINT, LPDBINT, LPBYTE);
  151. extern RETCODE      SQLAPI dbcursorclose (PDBHANDLE);
  152. extern RETCODE      SQLAPI dbcursorcolinfo (PDBCURSOR, INT, LPSTR, LPINT, LPDBINT, LPINT);
  153. extern RETCODE      SQLAPI dbcursorfetch (PDBCURSOR,  INT, INT);
  154. extern RETCODE      SQLAPI dbcursorfetchex (PDBCURSOR, INT, DBINT, DBINT, DBINT);
  155. extern RETCODE      SQLAPI dbcursorinfo (PDBCURSOR, LPINT, LPDBINT);
  156. extern RETCODE      SQLAPI dbcursorinfoex (PDBCURSOR, LPDBCURSORINFO);
  157. extern PDBCURSOR    SQLAPI dbcursoropen (PDBPROCESS, LPCSTR, INT, INT,UINT, LPDBINT);
  158. extern LPCBYTE      SQLAPI dbdata (PDBPROCESS, INT);
  159. extern BOOL         SQLAPI dbdataready (PDBPROCESS);
  160. extern RETCODE      SQLAPI dbdatecrack (PDBPROCESS, LPDBDATEREC, LPCDBDATETIME);
  161. extern DBINT        SQLAPI dbdatlen (PDBPROCESS, INT);
  162. extern BOOL         SQLAPI dbdead (PDBPROCESS);
  163. extern void         SQLAPI dbexit (void);
  164. extern RETCODE         SQLAPI dbenlisttrans(PDBPROCESS, LPVOID);
  165. extern RETCODE        SQLAPI dbenlistxatrans(PDBPROCESS, BOOL);
  166. extern RETCODE        SQLAPI dbfcmd (PDBPROCESS, LPCSTR, ...);
  167. extern DBINT        SQLAPI dbfirstrow (PDBPROCESS);
  168. extern void         SQLAPI dbfreebuf (PDBPROCESS);
  169. extern void         SQLAPI dbfreelogin (PLOGINREC);
  170. extern void         SQLAPI dbfreequal (LPCSTR);
  171. extern LPSTR        SQLAPI dbgetchar (PDBPROCESS, INT);
  172. extern SHORT        SQLAPI dbgetmaxprocs (void);
  173. extern INT          SQLAPI dbgetoff (PDBPROCESS, DBUSMALLINT, INT);
  174. extern UINT         SQLAPI dbgetpacket (PDBPROCESS);
  175. extern STATUS       SQLAPI dbgetrow (PDBPROCESS, DBINT);
  176. extern INT          SQLAPI dbgettime (void);
  177. extern LPVOID       SQLAPI dbgetuserdata (PDBPROCESS);
  178. extern BOOL         SQLAPI dbhasretstat (PDBPROCESS);
  179. extern LPCSTR       SQLAPI dbinit (void);
  180. extern BOOL         SQLAPI dbisavail (PDBPROCESS);
  181. extern BOOL         SQLAPI dbiscount (PDBPROCESS);
  182. extern BOOL         SQLAPI dbisopt (PDBPROCESS, INT, LPCSTR);
  183. extern DBINT        SQLAPI dblastrow (PDBPROCESS);
  184. extern PLOGINREC    SQLAPI dblogin (void);
  185. extern RETCODE      SQLAPI dbmorecmds (PDBPROCESS);
  186. extern RETCODE      SQLAPI dbmoretext (PDBPROCESS, DBINT, LPCBYTE);
  187. extern LPCSTR       SQLAPI dbname (PDBPROCESS);
  188. extern STATUS       SQLAPI dbnextrow (PDBPROCESS);
  189. extern RETCODE      SQLAPI dbnullbind (PDBPROCESS, INT, LPCDBINT);
  190. extern INT          SQLAPI dbnumalts (PDBPROCESS, INT);
  191. extern INT          SQLAPI dbnumcols (PDBPROCESS);
  192. extern INT          SQLAPI dbnumcompute (PDBPROCESS);
  193. extern INT          SQLAPI dbnumorders (PDBPROCESS);
  194. extern INT          SQLAPI dbnumrets (PDBPROCESS);
  195. extern PDBPROCESS   SQLAPI dbopen (PLOGINREC, LPCSTR);
  196. extern INT          SQLAPI dbordercol (PDBPROCESS, INT);
  197. extern RETCODE      SQLAPI dbprocinfo (PDBPROCESS, LPDBPROCINFO);
  198. extern void         SQLAPI dbprhead (PDBPROCESS);
  199. extern RETCODE      SQLAPI dbprrow (PDBPROCESS);
  200. extern LPCSTR       SQLAPI dbprtype (INT);
  201. extern LPCSTR       SQLAPI dbqual (PDBPROCESS, INT, LPCSTR);
  202. extern DBINT        SQLAPI dbreadpage (PDBPROCESS, LPCSTR, DBINT, LPBYTE);
  203. extern DBINT        SQLAPI dbreadtext (PDBPROCESS, LPVOID, DBINT);
  204. extern RETCODE      SQLAPI dbresults (PDBPROCESS);
  205. extern LPCBYTE      SQLAPI dbretdata (PDBPROCESS, INT);
  206. extern DBINT        SQLAPI dbretlen (PDBPROCESS, INT);
  207. extern LPCSTR       SQLAPI dbretname (PDBPROCESS, INT);
  208. extern DBINT        SQLAPI dbretstatus (PDBPROCESS);
  209. extern INT          SQLAPI dbrettype (PDBPROCESS, INT);
  210. extern RETCODE      SQLAPI dbrows (PDBPROCESS);
  211. extern STATUS       SQLAPI dbrowtype (PDBPROCESS);
  212. extern RETCODE      SQLAPI dbrpcinit (PDBPROCESS, LPCSTR, DBSMALLINT);
  213. extern RETCODE      SQLAPI dbrpcparam (PDBPROCESS, LPCSTR, BYTE, INT, DBINT, DBINT, LPCBYTE);
  214. extern RETCODE      SQLAPI dbrpcsend (PDBPROCESS);
  215. extern RETCODE      SQLAPI dbrpcexec (PDBPROCESS);
  216. extern void         SQLAPI dbrpwclr (PLOGINREC);
  217. extern RETCODE      SQLAPI dbrpwset (PLOGINREC, LPCSTR, LPCSTR, INT);
  218. extern INT          SQLAPI dbserverenum (USHORT, LPSTR, USHORT, LPUSHORT);
  219. extern void         SQLAPI dbsetavail (PDBPROCESS);
  220. extern RETCODE      SQLAPI dbsetmaxprocs (SHORT);
  221. extern RETCODE      SQLAPI dbsetlname (PLOGINREC, LPCSTR, INT);
  222. extern RETCODE      SQLAPI dbsetlogintime (INT);
  223. extern RETCODE      SQLAPI dbsetlpacket (PLOGINREC, USHORT);
  224. extern RETCODE      SQLAPI dbsetnull (PDBPROCESS, INT, INT, LPCBYTE);
  225. extern RETCODE      SQLAPI dbsetopt (PDBPROCESS, INT, LPCSTR);
  226. extern RETCODE      SQLAPI dbsettime (INT);
  227. extern void         SQLAPI dbsetuserdata (PDBPROCESS, LPVOID);
  228. extern RETCODE      SQLAPI dbsqlexec (PDBPROCESS);
  229. extern RETCODE      SQLAPI dbsqlok (PDBPROCESS);
  230. extern RETCODE      SQLAPI dbsqlsend (PDBPROCESS);
  231. extern RETCODE      SQLAPI dbstrcpy (PDBPROCESS, INT, INT, LPSTR);
  232. extern INT          SQLAPI dbstrlen (PDBPROCESS);
  233. extern BOOL         SQLAPI dbtabbrowse (PDBPROCESS, INT);
  234. extern INT          SQLAPI dbtabcount (PDBPROCESS);
  235. extern LPCSTR       SQLAPI dbtabname (PDBPROCESS, INT);
  236. extern LPCSTR       SQLAPI dbtabsource (PDBPROCESS, INT, LPINT);
  237. extern INT          SQLAPI dbtsnewlen (PDBPROCESS);
  238. extern LPCDBBINARY  SQLAPI dbtsnewval (PDBPROCESS);
  239. extern RETCODE      SQLAPI dbtsput (PDBPROCESS, LPCDBBINARY, INT, INT, LPCSTR);
  240. extern LPCDBBINARY  SQLAPI dbtxptr (PDBPROCESS, INT);
  241. extern LPCDBBINARY  SQLAPI dbtxtimestamp (PDBPROCESS, INT);
  242. extern LPCDBBINARY  SQLAPI dbtxtsnewval (PDBPROCESS);
  243. extern RETCODE      SQLAPI dbtxtsput (PDBPROCESS, LPCDBBINARY, INT);
  244. extern RETCODE      SQLAPI dbuse (PDBPROCESS, LPCSTR);
  245. extern BOOL         SQLAPI dbvarylen (PDBPROCESS, INT);
  246. extern BOOL         SQLAPI dbwillconvert (INT, INT);
  247. extern RETCODE      SQLAPI dbwritepage (PDBPROCESS, LPCSTR, DBINT, DBINT, LPBYTE);
  248. extern RETCODE      SQLAPI dbwritetext (PDBPROCESS, LPCSTR, LPCDBBINARY, DBTINYINT, LPCDBBINARY, BOOL, DBINT, LPCBYTE);
  249. extern RETCODE      SQLAPI dbupdatetext(PDBPROCESS, LPCSTR, LPCDBBINARY, LPCDBBINARY, INT, DBINT, DBINT, LPCSTR, DBINT, LPCDBBINARY);
  250.  
  251. #ifdef __cplusplus
  252. }
  253. #endif
  254.  
  255. #endif // _INC_SQLDB
  256.