home *** CD-ROM | disk | FTP | other *** search
/ business-86-101-185-173.business.broadband.hu / business-86-101-185-173.business.broadband.hu.zip / business-86-101-185-173.business.broadband.hu / trans / sqlncli2005.msi / srv.h.06870705_8636_410E_B591_FEE8962A550E < prev    next >
Text File  |  2005-06-13  |  15KB  |  472 lines

  1. //------------------------------------------------------------
  2. // Open Data Services header file: srv.h
  3. // Copyright (c) Microsoft Corporation. All rights reserved.
  4. //
  5.  
  6. // Avoid double inclusion
  7. #ifndef _ODS_SRV_H_
  8. #define _ODS_SRV_H_
  9.  
  10. #ifndef COMPILE_FOR_CLR
  11. #include "windows.h"
  12. #endif
  13.  
  14. // ODS uses pack(4) on all CPU types
  15. #pragma pack(4)
  16.  
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20.  
  21. // define model
  22. #if !defined( FAR )
  23. #define FAR far
  24. #endif
  25.  
  26. //------------------------------------------------------------
  27. // Formats of data types
  28. #if !defined(DBTYPEDEFS) // Do not conflict with DBLIB definitions
  29. #if !defined(MAXNUMERICLEN) // Do not conflict with ODBC definitions
  30.  
  31. #define DBTYPEDEFS
  32.  
  33. typedef unsigned char DBBOOL;
  34. typedef unsigned char DBBYTE;
  35. typedef unsigned char DBTINYINT;
  36. typedef short DBSMALLINT;
  37. typedef unsigned short DBUSMALLINT;
  38. typedef long DBINT;
  39. typedef char DBCHAR;
  40. typedef unsigned char DBBINARY;
  41. typedef unsigned char DBBIT;
  42. typedef double DBFLT8;
  43.  
  44. typedef struct srv_datetime 
  45. {    // Format for SRVDATETIME
  46.     long dtdays;            // number of days since 1/1/1900
  47.     unsigned long dttime;   // number 300th second since mid
  48. } DBDATETIME;                
  49.  
  50. typedef struct srv_money 
  51. {        // Format for SRVMONEY
  52.     long mnyhigh;
  53.     unsigned long mnylow;
  54. } DBMONEY;
  55.  
  56. typedef float DBFLT4;
  57. typedef long DBMONEY4;
  58.  
  59. typedef struct dbdatetime4 
  60. {    // Format for SRVDATETIM4
  61.     unsigned short numdays; // number of days since 1/1/1900
  62.     unsigned short nummins; // number of minutes sicne midnight
  63. } DBDATETIM4;
  64.  
  65. #define MAXNUMERICLEN    16
  66. typedef struct dbnumeric    
  67. {    // Format for SRVNUMERIC,SRVNUMERICN,SRVDECIMAL,SRVDECIMALN
  68.     BYTE precision;
  69.     BYTE scale;
  70.     BYTE sign;
  71.     BYTE val[MAXNUMERICLEN];
  72. } DBNUMERIC;
  73. typedef DBNUMERIC DBDECIMAL;
  74.  
  75. #endif  // #if !defined(MAXNUMERICLEN)
  76. #endif  // #if !defined( DBTYPEDEFS )
  77.  
  78. //------------------------------------------------------------
  79. // Constants used by APIs
  80.  
  81. // Type Tokens
  82. #define SRV_TDS_NULL           (BYTE) 0x1f
  83. #define SRV_TDS_TEXT           (BYTE) 0x23
  84. #define SRV_TDS_GUID           (BYTE) 0x24
  85. #define SRV_TDS_VARBINARY      (BYTE) 0x25
  86. #define SRV_TDS_INTN           (BYTE) 0x26
  87. #define SRV_TDS_VARCHAR        (BYTE) 0x27
  88. #define SRV_TDS_BINARY         (BYTE) 0x2d
  89. #define SRV_TDS_IMAGE          (BYTE) 0x22
  90. #define SRV_TDS_CHAR           (BYTE) 0x2f
  91. #define SRV_TDS_INT1           (BYTE) 0x30
  92. #define SRV_TDS_BIT            (BYTE) 0x32
  93. #define SRV_TDS_INT2           (BYTE) 0x34
  94. #define SRV_TDS_DECIMAL        (BYTE) 0x37
  95. #define SRV_TDS_INT4           (BYTE) 0x38
  96. #define SRV_TDS_DATETIM4       (BYTE) 0x3a
  97. #define SRV_TDS_FLT4           (BYTE) 0x3b
  98. #define SRV_TDS_MONEY          (BYTE) 0x3c
  99. #define SRV_TDS_DATETIME       (BYTE) 0x3d
  100. #define SRV_TDS_FLT8           (BYTE) 0x3e
  101. #define SRV_TDS_NUMERIC        (BYTE) 0x3f
  102. #define SRV_TDS_SSVARIANT      (BYTE) 0x62
  103. #define SRV_TDS_NTEXT           (BYTE) 0x63
  104. #define SRV_TDS_BITN           (BYTE) 0x68
  105. #define SRV_TDS_DECIMALN       (BYTE) 0x6a
  106. #define SRV_TDS_NUMERICN       (BYTE) 0x6c
  107. #define SRV_TDS_FLTN           (BYTE) 0x6d
  108. #define SRV_TDS_MONEYN         (BYTE) 0x6e
  109. #define SRV_TDS_DATETIMN       (BYTE) 0x6f
  110. #define SRV_TDS_MONEY4         (BYTE) 0x7a
  111. #define SRV_TDS_INT8           (BYTE) 0x7f
  112. #define SRV_TDS_BIGVARBINARY   (BYTE) 0xA5
  113. #define SRV_TDS_BIGVARCHAR     (BYTE) 0xA7
  114. #define SRV_TDS_BIGBINARY      (BYTE) 0xAD
  115. #define SRV_TDS_BIGCHAR        (BYTE) 0xAF
  116. #define SRV_TDS_NVARCHAR       (BYTE) 0xe7
  117. #define SRV_TDS_NCHAR           (BYTE) 0xef
  118.  
  119. // Datatypes
  120. // Also: values of symbol parameter to srv_symbol when type = SRV_DATATYPE
  121. #define SRVNULL        SRV_TDS_NULL
  122. #define SRVTEXT        SRV_TDS_TEXT
  123. #define SRVGUID        SRV_TDS_GUID
  124. #define SRVVARBINARY   SRV_TDS_VARBINARY
  125. #define SRVINTN        SRV_TDS_INTN
  126. #define SRVVARCHAR     SRV_TDS_VARCHAR
  127. #define SRVBINARY      SRV_TDS_BINARY
  128. #define SRVIMAGE       SRV_TDS_IMAGE
  129. #define SRVCHAR        SRV_TDS_CHAR
  130. #define SRVINT1        SRV_TDS_INT1
  131. #define SRVBIT         SRV_TDS_BIT
  132. #define SRVINT2        SRV_TDS_INT2
  133. #define SRVDECIMAL       SRV_TDS_DECIMAL
  134. #define SRVINT4        SRV_TDS_INT4
  135. #define SRVDATETIM4    SRV_TDS_DATETIM4
  136. #define SRVFLT4        SRV_TDS_FLT4    
  137. #define SRVMONEY       SRV_TDS_MONEY
  138. #define SRVDATETIME    SRV_TDS_DATETIME
  139. #define SRVFLT8        SRV_TDS_FLT8
  140. #define SRVNUMERIC       SRV_TDS_NUMERIC
  141. #define SRVSSVARIANT   SRV_TDS_SSVARIANT
  142. #define SRVNTEXT       SRV_TDS_NTEXT
  143. #define SRVBITN           SRV_TDS_BITN
  144. #define SRVDECIMALN       SRV_TDS_DECIMALN
  145. #define SRVNUMERICN       SRV_TDS_NUMERICN
  146. #define SRVFLTN        SRV_TDS_FLTN
  147. #define SRVMONEYN      SRV_TDS_MONEYN
  148. #define SRVDATETIMN    SRV_TDS_DATETIMN
  149. #define SRVMONEY4      SRV_TDS_MONEY4
  150. #define SRVINT8        SRV_TDS_INT8  
  151. #define SRVBIGVARBINARY SRV_TDS_BIGVARBINARY
  152. #define SRVBIGVARCHAR  SRV_TDS_BIGVARCHAR
  153. #define SRVBIGBINARY   SRV_TDS_BIGBINARY
  154. #define SRVBIGCHAR     SRV_TDS_BIGCHAR
  155. #define SRVNVARCHAR       SRV_TDS_NVARCHAR
  156. #define SRVNCHAR       SRV_TDS_NCHAR
  157.  
  158. // values for srv_symbol type parameter
  159. #define SRV_ERROR      0
  160. #define SRV_DONE       1
  161. #define SRV_DATATYPE   2
  162. #define SRV_EVENT      4
  163.  
  164. // values for srv_symbol symbol parameter, when type = SRV_ERROR
  165. #define SRV_ENO_OS_ERR     0
  166. #define SRV_INFO           1
  167. #define SRV_FATAL_PROCESS  10
  168. #define SRV_FATAL_SERVER   19
  169.  
  170. // Types of server events
  171. // Also: values for srv_symbol symbol parameter, when type = SRV_EVENT
  172. #define SRV_CONTINUE       0
  173. #define SRV_LANGUAGE       1
  174. #define SRV_CONNECT        2
  175. #define SRV_RPC            3
  176. #define SRV_RESTART        4
  177. #define SRV_DISCONNECT     5
  178. #define SRV_ATTENTION      6
  179. #define SRV_SLEEP          7
  180. #define SRV_START          8
  181. #define SRV_STOP           9
  182. #define SRV_EXIT           10
  183. #define SRV_CANCEL         11
  184. #define SRV_SETUP          12
  185. #define SRV_CLOSE          13
  186. #define SRV_PRACK          14
  187. #define SRV_PRERROR        15
  188. #define SRV_ATTENTION_ACK  16
  189. #define SRV_CONNECT_V7       16    // TDS type for TDS 7 clients.  Overloaded with SRV_ATTENTION_ACK
  190. #define SRV_SKIP           17
  191. #define SRV_TRANSMGR       18
  192. #define SRV_PRELOGIN       19
  193. #define SRV_OLEDB           20
  194. #define SRV_INTERNAL_HANDLER 99
  195. #define SRV_PROGRAMMER_DEFINED  100
  196.  
  197. // values for srv_sfield field parameter
  198. #define SRV_SERVERNAME          0
  199. #define SRV_VERSION             6
  200.  
  201. // Length to indicate string is null terminated
  202. #define SRV_NULLTERM   -1
  203.  
  204. // values of msgtype parameter to srv_sendmsg
  205. #define SRV_MSG_INFO    1
  206. #define SRV_MSG_ERROR   2
  207.  
  208. // values of status parameter to srv_senddone
  209. // Also: values for symbol parameters to srv_symbol when type = SRV_DONE
  210. #define SRV_DONE_FINAL            (USHORT) 0x0000
  211. #define SRV_DONE_MORE            (USHORT) 0x0001
  212. #define SRV_DONE_ERROR            (USHORT) 0x0002
  213. #define SRV_DONE_COUNT            (USHORT) 0x0010
  214. #define SRV_DONE_RPC_IN_BATCH   (USHORT) 0x0080
  215.  
  216. // return values of srv_paramstatus
  217. #define SRV_PARAMRETURN        0x0001
  218. #define SRV_PARAMDEFAULT    0x0002
  219. #define SRV_PARAMSORTORDER    0x0004
  220.  
  221. // return values of srv_rpcoptions
  222. #define SRV_RECOMPILE        0x0001
  223. #define SRV_NOMETADATA        0x0002
  224.  
  225. // values of field parameter to srv_pfield
  226. //#define SRV_LANGUAGE 1   already defined above
  227. //#define SRV_EVENT    4   already defined above
  228. #define SRV_SPID                10
  229. #define SRV_NETSPID                11
  230. #define SRV_TYPE                12
  231. #define SRV_STATUS                13
  232. #define SRV_RMTSERVER            14
  233. #define SRV_HOST                15
  234. #define SRV_USER                16
  235. #define SRV_PWD                    17
  236. #define SRV_CPID                18
  237. #define SRV_APPLNAME            19
  238. #define SRV_TDS                    20
  239. #define SRV_CLIB                21
  240. #define SRV_LIBVERS                22
  241. #define SRV_ROWSENT                23
  242. #define SRV_BCPFLAG                24
  243. #define SRV_NATLANG                25
  244. #define SRV_PIPEHANDLE            26
  245. #define SRV_NETWORK_MODULE        27
  246. #define SRV_NETWORK_VERSION        28
  247. #define SRV_NETWORK_CONNECTION    29
  248. #define SRV_LSECURE                30
  249. #define SRV_SAXP                31
  250. #define SRV_UNICODE_USER        33
  251. #define SRV_UNICODE_PWD            35
  252. #define SRV_SPROC_CODEPAGE      36
  253. #define SRV_MSGLCID                37
  254. #define SRV_INSTANCENAME        38
  255. #define SRV_HASHPWD                39
  256. #define SRV_UNICODE_CURRENTLOGIN 40
  257.  
  258. // return value of SRV_TDSVERSION macro
  259. #define SRV_TDS_NONE   0
  260. #define SRV_TDS_2_0    1
  261. #define SRV_TDS_3_4    2
  262. #define SRV_TDS_4_2    3
  263. #define SRV_TDS_6_0    4
  264. #define SRV_TDS_7_0    5
  265.  
  266. // Return values from APIs
  267. typedef int SRVRETCODE;        // SUCCEED or FAIL
  268. #ifndef ODBCVER
  269. typedef int RETCODE;
  270. #endif
  271.  
  272. #if !defined( SUCCEED )
  273. #define SUCCEED     1   // Successful return value
  274. #endif
  275.  
  276. #if !defined( FAIL )
  277. #define FAIL        0   // Unsuccessful return value
  278. #endif
  279.  
  280. #define SRV_DUPLICATE_HANDLER    2    // additional return value for srv_pre/post_handle
  281.  
  282. #ifndef COMPILE_FOR_CLR
  283. //------------------------------------------------
  284. //PreDeclare structures
  285. //
  286. struct srv_server;
  287. typedef struct srv_server SRV_SERVER;
  288.  
  289. struct srv_config;
  290. typedef struct srv_config SRV_CONFIG;
  291.  
  292. struct CXPData;
  293. typedef struct CXPData SRV_PROC;
  294.  
  295.  
  296. //------------------------------------------------
  297. //------------------------------------------------
  298. // ODS MACROs & APIs
  299.  
  300. // Describing and sending a result set
  301. int __cdecl srv_describe(SRV_PROC*,int,char*,int,long int,long int,long int,long int,void*);
  302. int __cdecl srv_setutype(SRV_PROC* srvproc,int column,long int usertype);
  303. int __cdecl srv_setcoldata(SRV_PROC* srvproc,int column,void* data);
  304. int __cdecl srv_setcollen( SRV_PROC* srvproc,int column,int len);
  305. int __cdecl srv_sendrow(SRV_PROC* srvproc );
  306. int __cdecl srv_senddone(SRV_PROC* srvproc,USHORT status,USHORT curcmd,long int count);
  307.  
  308. // Dealing with Extended Procedure parameters
  309. int __cdecl srv_rpcparams(SRV_PROC*);
  310. int __cdecl srv_paraminfo(SRV_PROC*,int,BYTE*,ULONG*,ULONG*,BYTE*,BOOL*);
  311. int __cdecl srv_paramsetoutput(SRV_PROC*,int,BYTE*,ULONG,BOOL);
  312.  
  313. void* __cdecl srv_paramdata(SRV_PROC*,int);
  314. int __cdecl srv_paramlen(SRV_PROC*,int);
  315. int __cdecl srv_parammaxlen(SRV_PROC*,int);
  316. int __cdecl srv_paramtype(SRV_PROC*,int);
  317. int __cdecl srv_paramset(SRV_PROC*,int,void*,int);
  318.  
  319. char* __cdecl srv_paramname(SRV_PROC*,int,int*);
  320. int __cdecl srv_paramnumber(SRV_PROC*,char*,int);
  321.  
  322. //--------------------------------------------------------------
  323. //--------------------------------------------------------------
  324. // The rest of these APIs are still supported, in SQL Server 7.0,
  325. // but may not be supported after SQL Server 7.0
  326.  
  327. // MACROs
  328. #define SRV_GETSERVER(a)        srv_getserver      ( a )
  329. #define SRV_GOT_ATTENTION(a)    srv_got_attention ( a )
  330. #define    SRV_TDSVERSION(a)        srv_tdsversion      ( a )
  331.  
  332. SRV_SERVER* __cdecl srv_getserver( SRV_PROC   * srvproc );
  333. BOOL __cdecl srv_got_attention( SRV_PROC * srvproc );
  334.  
  335. // Memory
  336. void* __cdecl srv_alloc(long int ulSize);
  337. int __cdecl srv_bmove(void* from,void* to,long int count);
  338. int __cdecl srv_bzero( void  * location,long int count);
  339. int __cdecl srv_free( void * ptr );
  340.  
  341.  
  342. int __cdecl srv_convert(SRV_PROC*,int,void*,long int,int,void*,long int);
  343.  
  344. void* __cdecl srv_getuserdata( SRV_PROC * srvproc );
  345.  
  346. int __cdecl srv_getbindtoken(SRV_PROC * srvproc,char* token_buf);
  347.  
  348. int __cdecl srv_getdtcxact(SRV_PROC * srvproc,void ** ppv);
  349.  
  350. typedef int (* EventHandler)(void *);
  351.  
  352. int __cdecl srv_impersonate_client( SRV_PROC * srvproc );
  353.  
  354. long __cdecl srv_langcpy(SRV_PROC *    srvproc,long start,long nbytes,char* buffer);
  355. long __cdecl srv_langlen( SRV_PROC * srvproc );
  356. void* __cdecl srv_langptr( SRV_PROC *srvproc );
  357.  
  358. int
  359.      __cdecl srv_log( SRV_SERVER * server,
  360.                     BOOL         datestamp,
  361.                     char     * msg,
  362.                     int          msglen );
  363.  
  364. int __cdecl srv_paramstatus(SRV_PROC*,int);
  365.  
  366. void* __cdecl srv_pfieldex( SRV_PROC * srvproc,int    field,int    * len );
  367.  
  368. char* __cdecl srv_pfield( SRV_PROC * srvproc,int          field,int        * len );
  369.  
  370. int __cdecl srv_returnval( SRV_PROC * srvproc,
  371.                           char   * valuename,
  372.                           int         len,
  373.                           BYTE         status,
  374.                           long int      type,
  375.                           long int      maxlen,
  376.                           long int      datalen,
  377.                           void       * value );
  378.  
  379. int __cdecl srv_revert_to_self( SRV_PROC * srvproc );
  380.  
  381. char* __cdecl srv_rpcdb(SRV_PROC* srvproc,int* len );
  382. char* __cdecl srv_rpcname(SRV_PROC * srvproc,int* len );
  383. int __cdecl srv_rpcnumber( SRV_PROC * srvproc );
  384. USHORT __cdecl srv_rpcoptions( SRV_PROC * srvproc );
  385. char* __cdecl srv_rpcowner( SRV_PROC * srvproc,int      * len );
  386.  
  387. int __cdecl srv_wsendmsg(    SRV_PROC    * srvproc,
  388.                         long int    msgnum, 
  389.                         BYTE        msgclass, 
  390.                         WCHAR        * message,    // message text 
  391.                         int            msglen);       // length of message text
  392.  
  393. int
  394.      __cdecl srv_sendmsg( SRV_PROC  * srvproc,
  395.                         int            msgtype,
  396.                         long int        msgnum,
  397.                         BYTE   msgclass,
  398.                         BYTE   state,
  399.                         char      * rpcname,
  400.                         int            rpcnamelen,
  401.                         USHORT linenum,
  402.                         char      * message,
  403.                         int            msglen );
  404.  
  405. int __cdecl srv_sendstatus( SRV_PROC * srvproc,long int      status );
  406.  
  407.  
  408. int __cdecl srv_setuserdata(SRV_PROC* srvproc,void* ptr);
  409.  
  410.  
  411. char* __cdecl srv_sfield( SRV_SERVER * server,int field,int* len);
  412.  
  413. char* __cdecl srv_symbol(int    type,int symbol,int* len);
  414.  
  415. int __cdecl srv_tdsversion(SRV_PROC* srvproc);
  416.  
  417. BOOL __cdecl srv_willconvert(int srctype,int desttype );
  418.  
  419. int __cdecl srv_terminatethread( SRV_PROC * srvproc );
  420.  
  421. int __cdecl srv_sendstatistics( SRV_PROC * srvproc );
  422.  
  423. int __cdecl srv_clearstatistics( SRV_PROC * srvproc );
  424.  
  425. int __cdecl srv_message_handler( SRV_PROC * srvproc, 
  426.                                 int        errornum, 
  427.                                 BYTE       severity,
  428.                                 BYTE       state, 
  429.                                 int        oserrnum, 
  430.                                 char     * errtext, 
  431.                                 int        errtextlen, 
  432.                                 char     * oserrtext, 
  433.                                 int        oserrtextlen );
  434.  
  435. int __cdecl srv_pre_handle( SRV_SERVER * server,
  436.                             SRV_PROC   * srvproc,
  437.                             long int event,
  438.                             EventHandler handler,
  439.                             BOOL         remove );
  440. int __cdecl srv_post_handle( SRV_SERVER * server,
  441.                              SRV_PROC   * srvproc,
  442.                              long int        event,
  443.                              EventHandler handler,
  444.                              BOOL         remove );
  445.  
  446. int __cdecl srv_IgnoreAnsiToOem( SRV_PROC * srvproc,BOOL bTF);
  447.  
  448. #endif // #ifndef COMPILE_FOR_CLR
  449.  
  450. #ifdef __cplusplus
  451. }
  452. #endif
  453.  
  454. #pragma pack()
  455.  
  456. #define SS_MAJOR_VERSION    7
  457. #define SS_MINOR_VERSION    00
  458. #define SS_LEVEL_VERSION    0000
  459. #define SS_MINIMUM_VERSION  "7.00.00.0000"
  460. #define ODS_VERSION            ((SS_MAJOR_VERSION << 24)  | (SS_MINOR_VERSION << 16))
  461.  
  462. #endif //_ODS_SRV_H_
  463.  
  464. //////////////////////////////////////////////////////////////////
  465. // Suggested implementation of __GetXpVersion
  466. //
  467. //__declspec(dllexport) ULONG __GetXpVersion() 
  468. //    {
  469. //    return ODS_VERSION;
  470. //    }
  471. //////////////////////////////////////////////////////////////////
  472.