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 / sqlncli.msi / DP_sqlncli10_h_32 < prev    next >
Text File  |  2010-04-02  |  119KB  |  3,049 lines

  1.  
  2.  
  3. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  4.  
  5.  
  6.  /* File created by MIDL compiler version 7.00.0546 */
  7. /* Compiler settings for sqlncli.idl:
  8.     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0546 
  9.     protocol : dce , ms_ext, c_ext, robust
  10.     error checks: allocation ref bounds_check enum stub_data 
  11.     VC __declspec() decoration level: 
  12.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  13.          DECLSPEC_UUID(), MIDL_INTERFACE()
  14. */
  15. /* @@MIDL_FILE_HEADING(  ) */
  16.  
  17. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  18.  
  19.  
  20. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  21. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  22. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  23. #endif
  24.  
  25. /* verify that the <rpcsal.h> version is high enough to compile this file*/
  26. #ifndef __REQUIRED_RPCSAL_H_VERSION__
  27. #define __REQUIRED_RPCSAL_H_VERSION__ 100
  28. #endif
  29.  
  30. #include "rpc.h"
  31. #include "rpcndr.h"
  32.  
  33. #ifndef __RPCNDR_H_VERSION__
  34. #error this stub requires an updated version of <rpcndr.h>
  35. #endif // __RPCNDR_H_VERSION__
  36.  
  37. #ifndef COM_NO_WINDOWS_H
  38. #include "windows.h"
  39. #include "ole2.h"
  40. #endif /*COM_NO_WINDOWS_H*/
  41.  
  42. #ifndef __sqlncli_h__
  43. #define __sqlncli_h__
  44.  
  45. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  46. #pragma once
  47. #endif
  48.  
  49. /* Forward Declarations */ 
  50.  
  51. #ifndef __ICommandWithParameters_FWD_DEFINED__
  52. #define __ICommandWithParameters_FWD_DEFINED__
  53. typedef interface ICommandWithParameters ICommandWithParameters;
  54. #endif     /* __ICommandWithParameters_FWD_DEFINED__ */
  55.  
  56.  
  57. #ifndef __IUMSInitialize_FWD_DEFINED__
  58. #define __IUMSInitialize_FWD_DEFINED__
  59. typedef interface IUMSInitialize IUMSInitialize;
  60. #endif     /* __IUMSInitialize_FWD_DEFINED__ */
  61.  
  62.  
  63. #ifndef __ISQLServerErrorInfo_FWD_DEFINED__
  64. #define __ISQLServerErrorInfo_FWD_DEFINED__
  65. typedef interface ISQLServerErrorInfo ISQLServerErrorInfo;
  66. #endif     /* __ISQLServerErrorInfo_FWD_DEFINED__ */
  67.  
  68.  
  69. #ifndef __IRowsetFastLoad_FWD_DEFINED__
  70. #define __IRowsetFastLoad_FWD_DEFINED__
  71. typedef interface IRowsetFastLoad IRowsetFastLoad;
  72. #endif     /* __IRowsetFastLoad_FWD_DEFINED__ */
  73.  
  74.  
  75. #ifndef __ISchemaLock_FWD_DEFINED__
  76. #define __ISchemaLock_FWD_DEFINED__
  77. typedef interface ISchemaLock ISchemaLock;
  78. #endif     /* __ISchemaLock_FWD_DEFINED__ */
  79.  
  80.  
  81. #ifndef __IBCPSession_FWD_DEFINED__
  82. #define __IBCPSession_FWD_DEFINED__
  83. typedef interface IBCPSession IBCPSession;
  84. #endif     /* __IBCPSession_FWD_DEFINED__ */
  85.  
  86.  
  87. #ifndef __ISSAbort_FWD_DEFINED__
  88. #define __ISSAbort_FWD_DEFINED__
  89. typedef interface ISSAbort ISSAbort;
  90. #endif     /* __ISSAbort_FWD_DEFINED__ */
  91.  
  92.  
  93. #ifndef __ISSCommandWithParameters_FWD_DEFINED__
  94. #define __ISSCommandWithParameters_FWD_DEFINED__
  95. typedef interface ISSCommandWithParameters ISSCommandWithParameters;
  96. #endif     /* __ISSCommandWithParameters_FWD_DEFINED__ */
  97.  
  98.  
  99. #ifndef __IDBAsynchStatus_FWD_DEFINED__
  100. #define __IDBAsynchStatus_FWD_DEFINED__
  101. typedef interface IDBAsynchStatus IDBAsynchStatus;
  102. #endif     /* __IDBAsynchStatus_FWD_DEFINED__ */
  103.  
  104.  
  105. #ifndef __ISSAsynchStatus_FWD_DEFINED__
  106. #define __ISSAsynchStatus_FWD_DEFINED__
  107. typedef interface ISSAsynchStatus ISSAsynchStatus;
  108. #endif     /* __ISSAsynchStatus_FWD_DEFINED__ */
  109.  
  110.  
  111. /* header files for imported files */
  112. #include "unknwn.h"
  113. #include "oaidl.h"
  114.  
  115. #ifdef __cplusplus
  116. extern "C"{
  117. #endif 
  118.  
  119.  
  120. /* interface __MIDL_itf_sqlncli_0000_0000 */
  121. /* [local] */ 
  122.  
  123. //-----------------------------------------------------------------------------
  124. // File:        sqlncli.h
  125. //
  126. // Copyright:   Copyright (c) Microsoft Corporation
  127. //
  128. // Contents:    SQL Server Native Client OLEDB provider and ODBC driver specific
  129. //              definitions.
  130. //
  131. //-----------------------------------------------------------------------------
  132.  
  133. #if !defined(SQLNCLI_VER)
  134. #define SQLNCLI_VER 1000
  135. #endif
  136.  
  137. #if SQLNCLI_VER >= 1000
  138.  
  139. #define SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI      "Microsoft SQL Server Native Client 10.0"
  140. #define SQLNCLI_PRODUCT_NAME_FULL_ANSI          "Microsoft SQL Server Native Client"
  141. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI     "SQL Server Native Client 10.0"
  142. #define SQLNCLI_PRODUCT_NAME_SHORT_ANSI         "SQL Server Native Client"
  143.  
  144. #define SQLNCLI_FILE_NAME_ANSI                  "sqlncli"
  145. #define SQLNCLI_FILE_NAME_VER_ANSI              "sqlncli10"
  146. #define SQLNCLI_FILE_NAME_FULL_ANSI             "sqlncli10.dll"
  147.  
  148. #define SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE   L"Microsoft SQL Server Native Client 10.0"
  149. #define SQLNCLI_PRODUCT_NAME_FULL_UNICODE       L"Microsoft SQL Server Native Client"
  150. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE  L"SQL Server Native Client 10.0"
  151. #define SQLNCLI_PRODUCT_NAME_SHORT_UNICODE      L"SQL Server Native Client"
  152.  
  153. #define SQLNCLI_FILE_NAME_UNICODE               L"sqlncli"
  154. #define SQLNCLI_FILE_NAME_VER_UNICODE           L"sqlncli10"
  155. #define SQLNCLI_FILE_NAME_FULL_UNICODE          L"sqlncli10.dll"
  156.  
  157. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  158.  
  159. #define SQLNCLI_VI_PROG_ID_ANSI                 "SQLNCLI10"
  160. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI    "SQLNCLI10 ErrorLookup"
  161. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI      "SQLNCLI10 Enumerator"
  162.  
  163. #define SQLNCLI_PROG_ID_ANSI                    "SQLNCLI10.1"
  164. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI       "SQLNCLI10 ErrorLookup.1"
  165. #define SQLNCLI_ENUMERATOR_PROG_ID_ANSI         "SQLNCLI10 Enumerator.1"
  166.  
  167. #define SQLNCLI_VI_PROG_ID_UNICODE              L"SQLNCLI10"
  168. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI10 ErrorLookup"
  169. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE   L"SQLNCLI10 Enumerator"
  170.  
  171. #define SQLNCLI_PROG_ID_UNICODE                 L"SQLNCLI10.1"
  172. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE    L"SQLNCLI10 ErrorLookup.1"
  173. #define SQLNCLI_ENUMERATOR_PROG_ID_UNICODE      L"SQLNCLI10 Enumerator.1"
  174.  
  175. #define SQLNCLI_CLSID                           CLSID_SQLNCLI10
  176. #define SQLNCLI_ERROR_CLSID                     CLSID_SQLNCLI10_ERROR
  177. #define SQLNCLI_ENUMERATOR_CLSID                CLSID_SQLNCLI10_ENUMERATOR
  178.  
  179. #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  180.  
  181. #else  // SQLNCLI_VER >= 1000
  182.  
  183. #define SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI      "Microsoft SQL Server Native Client"
  184. #define SQLNCLI_PRODUCT_NAME_FULL_ANSI          "Microsoft SQL Server Native Client"
  185. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI     "SQL Native Client"
  186. #define SQLNCLI_PRODUCT_NAME_SHORT_ANSI         "SQL Native Client"
  187.  
  188. #define SQLNCLI_FILE_NAME_ANSI                  "sqlncli"
  189. #define SQLNCLI_FILE_NAME_VER_ANSI              "sqlncli"
  190. #define SQLNCLI_FILE_NAME_FULL_ANSI             "sqlncli.dll"
  191.  
  192. #define SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE   L"Microsoft SQL Server Native Client"
  193. #define SQLNCLI_PRODUCT_NAME_FULL_UNICODE       L"Microsoft SQL Server Native Client"
  194. #define SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE  L"SQL Native Client"
  195. #define SQLNCLI_PRODUCT_NAME_SHORT_UNICODE      L"SQL Native Client"
  196.  
  197. #define SQLNCLI_FILE_NAME_UNICODE               L"sqlncli"
  198. #define SQLNCLI_FILE_NAME_VER_UNICODE           L"sqlncli"
  199. #define SQLNCLI_FILE_NAME_FULL_UNICODE          L"sqlncli.dll"
  200.  
  201. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  202.  
  203. #define SQLNCLI_VI_PROG_ID_ANSI                 "SQLNCLI"
  204. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI    "SQLNCLI ErrorLookup"
  205. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI      "SQLNCLI Enumerator"
  206.  
  207. #define SQLNCLI_PROG_ID_ANSI                    "SQLNCLI.1"
  208. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI       "SQLNCLI ErrorLookup.1"
  209. #define SQLNCLI_ENUMERATOR_PROG_ID_ANSI         "SQLNCLI Enumerator.1"
  210.  
  211. #define SQLNCLI_VI_PROG_ID_UNICODE              L"SQLNCLI"
  212. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI ErrorLookup"
  213. #define SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE   L"SQLNCLI Enumerator"
  214.  
  215. #define SQLNCLI_PROG_ID_UNICODE                 L"SQLNCLI.1"
  216. #define SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE    L"SQLNCLI ErrorLookup.1"
  217. #define SQLNCLI_ENUMERATOR_PROG_ID_UNICODE      L"SQLNCLI Enumerator.1"
  218.  
  219. #define SQLNCLI_CLSID                           CLSID_SQLNCLI
  220. #define SQLNCLI_ERROR_CLSID                     CLSID_SQLNCLI_ERROR
  221. #define SQLNCLI_ENUMERATOR_CLSID                CLSID_SQLNCLI_ENUMERATOR
  222.  
  223. #endif  // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  224.  
  225. #endif  // SQLNCLI_VER >= 1000
  226.  
  227. // define the character type agnostic constants
  228. #if defined(_UNICODE) || defined(UNICODE)
  229.  
  230. #define SQLNCLI_PRODUCT_NAME_FULL_VER           SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE
  231. #define SQLNCLI_PRODUCT_NAME_FULL               SQLNCLI_PRODUCT_NAME_FULL_UNICODE
  232. #define SQLNCLI_PRODUCT_NAME_SHORT_VER          SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE
  233. #define SQLNCLI_PRODUCT_NAME_SHORT              SQLNCLI_PRODUCT_NAME_SHORT_UNICODE
  234.  
  235. #define SQLNCLI_FILE_NAME                       SQLNCLI_FILE_NAME_UNICODE
  236. #define SQLNCLI_FILE_NAME_VER                   SQLNCLI_FILE_NAME_VER_UNICODE
  237. #define SQLNCLI_FILE_NAME_FULL                  SQLNCLI_FILE_NAME_FULL_UNICODE
  238.  
  239. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  240.  
  241. #define SQLNCLI_VI_PROG_ID                      SQLNCLI_VI_PROG_ID_UNICODE
  242. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID         SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE
  243. #define SQLNCLI_VI_ENUMERATOR_PROG_ID           SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE
  244.  
  245. #define SQLNCLI_PROG_ID                         SQLNCLI_PROG_ID_UNICODE
  246. #define SQLNCLI_ERROR_LOOKUP_PROG_ID            SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE
  247. #define SQLNCLI_ENUMERATOR_PROG_ID              SQLNCLI_ENUMERATOR_PROG_ID_UNICODE
  248.  
  249. #endif  // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  250.  
  251. #else   // _UNICODE || UNICODE
  252.  
  253. #define SQLNCLI_PRODUCT_NAME_FULL_VER           SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI
  254. #define SQLNCLI_PRODUCT_NAME_FULL               SQLNCLI_PRODUCT_NAME_FULL_ANSI
  255. #define SQLNCLI_PRODUCT_NAME_SHORT_VER          SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI
  256. #define SQLNCLI_PRODUCT_NAME_SHORT              SQLNCLI_PRODUCT_NAME_SHORT_ANSI
  257.  
  258. #define SQLNCLI_FILE_NAME                       SQLNCLI_FILE_NAME_ANSI
  259. #define SQLNCLI_FILE_NAME_VER                   SQLNCLI_FILE_NAME_VER_ANSI
  260. #define SQLNCLI_FILE_NAME_FULL                  SQLNCLI_FILE_NAME_FULL_ANSI
  261.  
  262. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  263.  
  264. #define SQLNCLI_VI_PROG_ID                      SQLNCLI_VI_PROG_ID_ANSI
  265. #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID         SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI
  266. #define SQLNCLI_VI_ENUMERATOR_PROG_ID           SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI
  267.  
  268. #define SQLNCLI_PROG_ID                         SQLNCLI_PROG_ID_ANSI
  269. #define SQLNCLI_ERROR_LOOKUP_PROG_ID            SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI
  270. #define SQLNCLI_ENUMERATOR_PROG_ID              SQLNCLI_ENUMERATOR_PROG_ID_ANSI
  271.  
  272. #endif  // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  273.  
  274. #endif  // _UNICODE || UNICODE
  275.  
  276. #if defined(_SQLNCLI_ODBC_) || !defined(_SQLNCLI_OLEDB_)
  277.  
  278. #define SQLNCLI_DRIVER_NAME                     SQLNCLI_PRODUCT_NAME_SHORT_VER
  279.  
  280. #endif
  281.  
  282. // OLEDB part of SQL Server Native Client header - begin here
  283. #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  284. #ifndef  __oledb_h__
  285. #include <oledb.h>
  286. #endif  /*__oledb_h__*/
  287.  
  288. #if 0        // This is already defined in oledb.h
  289.  
  290. #ifdef _WIN64
  291.  
  292. // Length of a non-character object, size
  293. typedef ULONGLONG            DBLENGTH;
  294.  
  295. // Offset within a rowset
  296. typedef LONGLONG                DBROWOFFSET;
  297.  
  298. // Number of rows
  299. typedef LONGLONG                DBROWCOUNT;
  300.  
  301. typedef ULONGLONG            DBCOUNTITEM;
  302.  
  303. // Ordinal (column number, etc.)
  304. typedef ULONGLONG            DBORDINAL;
  305.  
  306. typedef LONGLONG                DB_LORDINAL;
  307.  
  308. // Bookmarks
  309. typedef ULONGLONG            DBBKMARK;
  310. // Offset in the buffer
  311.  
  312. typedef ULONGLONG            DBBYTEOFFSET;
  313. // Reference count of each row/accessor  handle
  314.  
  315. typedef ULONG                DBREFCOUNT;
  316.  
  317. // Parameters
  318. typedef ULONGLONG            DB_UPARAMS;
  319.  
  320. typedef LONGLONG                DB_LPARAMS;
  321.  
  322. // hash values corresponding to the elements (bookmarks)
  323. typedef DWORDLONG            DBHASHVALUE;
  324.  
  325. // For reserve
  326. typedef DWORDLONG            DB_DWRESERVE;
  327.  
  328. typedef LONGLONG                DB_LRESERVE;
  329.  
  330. typedef ULONGLONG            DB_URESERVE;
  331.  
  332. #else //_WIN64
  333.  
  334. // Length of a non-character object, size
  335. typedef ULONG DBLENGTH;
  336.  
  337. // Offset within a rowset
  338. typedef LONG DBROWOFFSET;
  339.  
  340. // Number of rows
  341. typedef LONG DBROWCOUNT;
  342.  
  343. typedef ULONG DBCOUNTITEM;
  344.  
  345. // Ordinal (column number, etc.)
  346. typedef ULONG DBORDINAL;
  347.  
  348. typedef LONG DB_LORDINAL;
  349.  
  350. // Bookmarks
  351. typedef ULONG DBBKMARK;
  352.  
  353. // Offset in the buffer
  354. typedef ULONG DBBYTEOFFSET;
  355.  
  356. // Reference count of each row handle
  357. typedef ULONG DBREFCOUNT;
  358.  
  359. // Parameters
  360. typedef ULONG DB_UPARAMS;
  361.  
  362. typedef LONG DB_LPARAMS;
  363.  
  364. // hash values corresponding to the elements (bookmarks)
  365. typedef DWORD DBHASHVALUE;
  366.  
  367. // For reserve
  368. typedef DWORD DB_DWRESERVE;
  369.  
  370. typedef LONG DB_LRESERVE;
  371.  
  372. typedef ULONG DB_URESERVE;
  373.  
  374. #endif    // _WIN64
  375. typedef DWORD DBKIND;
  376.  
  377.  
  378. enum DBKINDENUM
  379.     {    DBKIND_GUID_NAME    = 0,
  380.     DBKIND_GUID_PROPID    = ( DBKIND_GUID_NAME + 1 ) ,
  381.     DBKIND_NAME    = ( DBKIND_GUID_PROPID + 1 ) ,
  382.     DBKIND_PGUID_NAME    = ( DBKIND_NAME + 1 ) ,
  383.     DBKIND_PGUID_PROPID    = ( DBKIND_PGUID_NAME + 1 ) ,
  384.     DBKIND_PROPID    = ( DBKIND_PGUID_PROPID + 1 ) ,
  385.     DBKIND_GUID    = ( DBKIND_PROPID + 1 ) 
  386.     } ;
  387. typedef struct tagDBID
  388.     {
  389.     union 
  390.         {
  391.         GUID guid;
  392.         GUID *pguid;
  393.          /* Empty union arm */ 
  394.         }     uGuid;
  395.     DBKIND eKind;
  396.     union 
  397.         {
  398.         LPOLESTR pwszName;
  399.         ULONG ulPropid;
  400.          /* Empty union arm */ 
  401.         }     uName;
  402.     }     DBID;
  403.  
  404. typedef struct tagDB_NUMERIC
  405.     {
  406.     BYTE precision;
  407.     BYTE scale;
  408.     BYTE sign;
  409.     BYTE val[ 16 ];
  410.     }     DB_NUMERIC;
  411.  
  412. typedef struct tagDBDATE
  413.     {
  414.     SHORT year;
  415.     USHORT month;
  416.     USHORT day;
  417.     }     DBDATE;
  418.  
  419. typedef struct tagDBTIME
  420.     {
  421.     USHORT hour;
  422.     USHORT minute;
  423.     USHORT second;
  424.     }     DBTIME;
  425.  
  426. typedef struct tagDBTIMESTAMP
  427.     {
  428.     SHORT year;
  429.     USHORT month;
  430.     USHORT day;
  431.     USHORT hour;
  432.     USHORT minute;
  433.     USHORT second;
  434.     ULONG fraction;
  435.     }     DBTIMESTAMP;
  436.  
  437. typedef struct tagDBOBJECT
  438.     {
  439.     DWORD dwFlags;
  440.     IID iid;
  441.     }     DBOBJECT;
  442.  
  443. typedef WORD DBTYPE;
  444.  
  445. typedef ULONG_PTR HACCESSOR;
  446.  
  447. typedef ULONG_PTR HCHAPTER;
  448.  
  449. typedef DWORD DBPARAMFLAGS;
  450.  
  451. typedef struct tagDBPARAMINFO
  452.     {
  453.     DBPARAMFLAGS dwFlags;
  454.     DBORDINAL iOrdinal;
  455.     LPOLESTR pwszName;
  456.     ITypeInfo *pTypeInfo;
  457.     DBLENGTH ulParamSize;
  458.     DBTYPE wType;
  459.     BYTE bPrecision;
  460.     BYTE bScale;
  461.     }     DBPARAMINFO;
  462.  
  463. typedef DWORD DBPROPID;
  464.  
  465. typedef struct tagDBPROPIDSET
  466.     {
  467.     DBPROPID *rgPropertyIDs;
  468.     ULONG cPropertyIDs;
  469.     GUID guidPropertySet;
  470.     }     DBPROPIDSET;
  471.  
  472. typedef DWORD DBPROPFLAGS;
  473.  
  474. typedef DWORD DBPROPOPTIONS;
  475.  
  476. typedef DWORD DBPROPSTATUS;
  477.  
  478. typedef struct tagDBPROP
  479.     {
  480.     DBPROPID dwPropertyID;
  481.     DBPROPOPTIONS dwOptions;
  482.     DBPROPSTATUS dwStatus;
  483.     DBID colid;
  484.     VARIANT vValue;
  485.     }     DBPROP;
  486.  
  487. typedef struct tagDBPROPSET
  488.     {
  489.     DBPROP *rgProperties;
  490.     ULONG cProperties;
  491.     GUID guidPropertySet;
  492.     }     DBPROPSET;
  493.  
  494.  
  495.  
  496. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0000_v0_0_c_ifspec;
  497. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0000_v0_0_s_ifspec;
  498.  
  499. #ifndef __ICommandWithParameters_INTERFACE_DEFINED__
  500. #define __ICommandWithParameters_INTERFACE_DEFINED__
  501.  
  502. /* interface ICommandWithParameters */
  503. /* [unique][uuid][object][local] */ 
  504.  
  505. typedef struct tagDBPARAMBINDINFO
  506.     {
  507.     LPOLESTR pwszDataSourceType;
  508.     LPOLESTR pwszName;
  509.     DBLENGTH ulParamSize;
  510.     DBPARAMFLAGS dwFlags;
  511.     BYTE bPrecision;
  512.     BYTE bScale;
  513.     }     DBPARAMBINDINFO;
  514.  
  515.  
  516. EXTERN_C const IID IID_ICommandWithParameters;
  517.  
  518. #if defined(__cplusplus) && !defined(CINTERFACE)
  519.     
  520.     MIDL_INTERFACE("0c733a64-2a1c-11ce-ade5-00aa0044773d")
  521.     ICommandWithParameters : public IUnknown
  522.     {
  523.     public:
  524.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetParameterInfo( 
  525.             /* [out][in] */ DB_UPARAMS *pcParams,
  526.             /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
  527.             /* [out] */ OLECHAR **ppNamesBuffer) = 0;
  528.         
  529.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE MapParameterNames( 
  530.             /* [in] */ DB_UPARAMS cParamNames,
  531.             /* [size_is][in] */ const OLECHAR *rgParamNames[  ],
  532.             /* [size_is][out] */ DB_LPARAMS rgParamOrdinals[  ]) = 0;
  533.         
  534.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetParameterInfo( 
  535.             /* [in] */ DB_UPARAMS cParams,
  536.             /* [size_is][unique][in] */ const DB_UPARAMS rgParamOrdinals[  ],
  537.             /* [size_is][unique][in] */ const DBPARAMBINDINFO rgParamBindInfo[  ]) = 0;
  538.         
  539.     };
  540.     
  541. #else     /* C style interface */
  542.  
  543.     typedef struct ICommandWithParametersVtbl
  544.     {
  545.         BEGIN_INTERFACE
  546.         
  547.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  548.             ICommandWithParameters * This,
  549.             /* [in] */ REFIID riid,
  550.             /* [annotation][iid_is][out] */ 
  551.             __RPC__deref_out  void **ppvObject);
  552.         
  553.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  554.             ICommandWithParameters * This);
  555.         
  556.         ULONG ( STDMETHODCALLTYPE *Release )( 
  557.             ICommandWithParameters * This);
  558.         
  559.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetParameterInfo )( 
  560.             ICommandWithParameters * This,
  561.             /* [out][in] */ DB_UPARAMS *pcParams,
  562.             /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
  563.             /* [out] */ OLECHAR **ppNamesBuffer);
  564.         
  565.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *MapParameterNames )( 
  566.             ICommandWithParameters * This,
  567.             /* [in] */ DB_UPARAMS cParamNames,
  568.             /* [size_is][in] */ const OLECHAR *rgParamNames[  ],
  569.             /* [size_is][out] */ DB_LPARAMS rgParamOrdinals[  ]);
  570.         
  571.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetParameterInfo )( 
  572.             ICommandWithParameters * This,
  573.             /* [in] */ DB_UPARAMS cParams,
  574.             /* [size_is][unique][in] */ const DB_UPARAMS rgParamOrdinals[  ],
  575.             /* [size_is][unique][in] */ const DBPARAMBINDINFO rgParamBindInfo[  ]);
  576.         
  577.         END_INTERFACE
  578.     } ICommandWithParametersVtbl;
  579.  
  580.     interface ICommandWithParameters
  581.     {
  582.         CONST_VTBL struct ICommandWithParametersVtbl *lpVtbl;
  583.     };
  584.  
  585.     
  586.  
  587. #ifdef COBJMACROS
  588.  
  589.  
  590. #define ICommandWithParameters_QueryInterface(This,riid,ppvObject)    \
  591.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  592.  
  593. #define ICommandWithParameters_AddRef(This)    \
  594.     ( (This)->lpVtbl -> AddRef(This) ) 
  595.  
  596. #define ICommandWithParameters_Release(This)    \
  597.     ( (This)->lpVtbl -> Release(This) ) 
  598.  
  599.  
  600. #define ICommandWithParameters_GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer)    \
  601.     ( (This)->lpVtbl -> GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer) ) 
  602.  
  603. #define ICommandWithParameters_MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals)    \
  604.     ( (This)->lpVtbl -> MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals) ) 
  605.  
  606. #define ICommandWithParameters_SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo)    \
  607.     ( (This)->lpVtbl -> SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo) ) 
  608.  
  609. #endif /* COBJMACROS */
  610.  
  611.  
  612. #endif     /* C style interface */
  613.  
  614.  
  615.  
  616. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteGetParameterInfo_Proxy( 
  617.     ICommandWithParameters * This,
  618.     /* [out][in] */ DB_UPARAMS *pcParams,
  619.     /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
  620.     /* [size_is][size_is][out] */ DBBYTEOFFSET **prgNameOffsets,
  621.     /* [out][in] */ DBLENGTH *pcbNamesBuffer,
  622.     /* [size_is][size_is][unique][out][in] */ OLECHAR **ppNamesBuffer,
  623.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  624.  
  625.  
  626. void __RPC_STUB ICommandWithParameters_RemoteGetParameterInfo_Stub(
  627.     IRpcStubBuffer *This,
  628.     IRpcChannelBuffer *_pRpcChannelBuffer,
  629.     PRPC_MESSAGE _pRpcMessage,
  630.     DWORD *_pdwStubPhase);
  631.  
  632.  
  633. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteMapParameterNames_Proxy( 
  634.     ICommandWithParameters * This,
  635.     /* [in] */ DB_UPARAMS cParamNames,
  636.     /* [size_is][in] */ LPCOLESTR *rgParamNames,
  637.     /* [size_is][out] */ DB_LPARAMS *rgParamOrdinals,
  638.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  639.  
  640.  
  641. void __RPC_STUB ICommandWithParameters_RemoteMapParameterNames_Stub(
  642.     IRpcStubBuffer *This,
  643.     IRpcChannelBuffer *_pRpcChannelBuffer,
  644.     PRPC_MESSAGE _pRpcMessage,
  645.     DWORD *_pdwStubPhase);
  646.  
  647.  
  648. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteSetParameterInfo_Proxy( 
  649.     ICommandWithParameters * This,
  650.     /* [in] */ DB_UPARAMS cParams,
  651.     /* [size_is][unique][in] */ const DB_UPARAMS *rgParamOrdinals,
  652.     /* [size_is][unique][in] */ const DBPARAMBINDINFO *rgParamBindInfo,
  653.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  654.  
  655.  
  656. void __RPC_STUB ICommandWithParameters_RemoteSetParameterInfo_Stub(
  657.     IRpcStubBuffer *This,
  658.     IRpcChannelBuffer *_pRpcChannelBuffer,
  659.     PRPC_MESSAGE _pRpcMessage,
  660.     DWORD *_pdwStubPhase);
  661.  
  662.  
  663.  
  664. #endif     /* __ICommandWithParameters_INTERFACE_DEFINED__ */
  665.  
  666.  
  667. /* interface __MIDL_itf_sqlncli_0000_0001 */
  668. /* [local] */ 
  669.  
  670. typedef DWORD DBASYNCHOP;
  671.  
  672. typedef DWORD DBASYNCHPHASE;
  673.  
  674. #endif       // This is already defined in oledb.h
  675.  
  676. //-------------------------------------------------------------------
  677. // Variant Access macros, similar to ole automation.
  678. //-------------------------------------------------------------------
  679. #define V_SS_VT(X)               ((X)->vt)
  680. #define V_SS_UNION(X, Y)         ((X)->Y)
  681.  
  682. #define V_SS_UI1(X)              V_SS_UNION(X, bTinyIntVal)
  683. #define V_SS_I2(X)               V_SS_UNION(X, sShortIntVal)
  684. #define V_SS_I4(X)               V_SS_UNION(X, lIntVal)
  685. #define V_SS_I8(X)               V_SS_UNION(X, llBigIntVal)
  686.  
  687. #define V_SS_R4(X)               V_SS_UNION(X, fltRealVal)
  688. #define V_SS_R8(X)               V_SS_UNION(X, dblFloatVal)
  689. #define V_SS_UI4(X)              V_SS_UNION(X, ulVal)
  690.  
  691. #define V_SS_MONEY(X)            V_SS_UNION(X, cyMoneyVal)
  692. #define V_SS_SMALLMONEY(X)       V_SS_UNION(X, cyMoneyVal)
  693.  
  694. #define V_SS_WSTRING(X)          V_SS_UNION(X, NCharVal)
  695. #define V_SS_WVARSTRING(X)       V_SS_UNION(X, NCharVal)
  696.  
  697. #define V_SS_STRING(X)           V_SS_UNION(X, CharVal)
  698. #define V_SS_VARSTRING(X)        V_SS_UNION(X, CharVal)
  699.  
  700. #define V_SS_BIT(X)              V_SS_UNION(X, fBitVal)
  701. #define V_SS_GUID(X)             V_SS_UNION(X, rgbGuidVal)
  702.  
  703. #define V_SS_NUMERIC(X)          V_SS_UNION(X, numNumericVal)
  704. #define V_SS_DECIMAL(X)          V_SS_UNION(X, numNumericVal)
  705.  
  706. #define V_SS_BINARY(X)           V_SS_UNION(X, BinaryVal)
  707. #define V_SS_VARBINARY(X)        V_SS_UNION(X, BinaryVal)
  708.  
  709. #define V_SS_DATETIME(X)         V_SS_UNION(X, tsDateTimeVal)
  710. #define V_SS_SMALLDATETIME(X)    V_SS_UNION(X, tsDateTimeVal)
  711.  
  712. #define V_SS_UNKNOWN(X)          V_SS_UNION(X, UnknownType)
  713.  
  714. //Text and image types.
  715. #define V_SS_IMAGE(X)            V_SS_UNION(X, ImageVal)
  716. #define V_SS_TEXT(X)             V_SS_UNION(X, TextVal)
  717. #define V_SS_NTEXT(X)            V_SS_UNION(X, NTextVal)
  718.  
  719. //Microsoft SQL Server 2008 datetime.
  720. #define V_SS_DATE(X)             V_SS_UNION(X, dDateVal)
  721. #define V_SS_TIME2(X)            V_SS_UNION(X, Time2Val)
  722. #define V_SS_DATETIME2(X)        V_SS_UNION(X, DateTimeVal)
  723. #define V_SS_DATETIMEOFFSET(X)   V_SS_UNION(X, DateTimeOffsetVal)
  724.  
  725. //-------------------------------------------------------------------
  726. // define SQL Server specific types.
  727. //-------------------------------------------------------------------
  728. typedef enum DBTYPEENUM EOledbTypes;
  729. #define DBTYPE_XML               ((EOledbTypes) 141) // introduced in SQL 2005
  730. #define DBTYPE_TABLE             ((EOledbTypes) 143) // introduced in SQL 2008
  731. #define DBTYPE_DBTIME2           ((EOledbTypes) 145) // introduced in SQL 2008
  732. #define DBTYPE_DBTIMESTAMPOFFSET ((EOledbTypes) 146) // introduced in SQL 2008
  733. #ifdef  _SQLOLEDB_H_
  734. #undef DBTYPE_SQLVARIANT
  735. #endif //_SQLOLEDB_H_
  736. #define DBTYPE_SQLVARIANT        ((EOledbTypes) 144) // introduced in MDAC 2.5
  737.  
  738.  
  739. #ifndef  _SQLOLEDB_H_
  740. enum SQLVARENUM
  741.     {
  742.     VT_SS_EMPTY = DBTYPE_EMPTY,
  743.     VT_SS_NULL = DBTYPE_NULL,
  744.     VT_SS_UI1 = DBTYPE_UI1,
  745.     VT_SS_I2 = DBTYPE_I2,
  746.     VT_SS_I4 = DBTYPE_I4,
  747.     VT_SS_I8 = DBTYPE_I8,
  748.  
  749.     //Floats
  750.     VT_SS_R4  = DBTYPE_R4,
  751.     VT_SS_R8 = DBTYPE_R8,
  752.  
  753.     //Money
  754.     VT_SS_MONEY = DBTYPE_CY,
  755.     VT_SS_SMALLMONEY  = 200,
  756.  
  757.     //Strings
  758.     VT_SS_WSTRING    = 201,
  759.     VT_SS_WVARSTRING = 202,
  760.  
  761.     VT_SS_STRING     = 203,
  762.     VT_SS_VARSTRING  = 204,
  763.  
  764.     //Bit
  765.     VT_SS_BIT        = DBTYPE_BOOL,
  766.  
  767.     //Guid
  768.     VT_SS_GUID       = DBTYPE_GUID,
  769.  
  770.     //Exact precision
  771.     VT_SS_NUMERIC    = DBTYPE_NUMERIC,
  772.     VT_SS_DECIMAL    = 205,
  773.  
  774.     //Datetime
  775.     VT_SS_DATETIME      = DBTYPE_DBTIMESTAMP,
  776.     VT_SS_SMALLDATETIME =206,
  777.  
  778.     //Binary
  779.     VT_SS_BINARY =207,
  780.     VT_SS_VARBINARY = 208,
  781.     //Future
  782.     VT_SS_UNKNOWN   = 209,
  783.  
  784.     //Additional datetime
  785.     VT_SS_DATE = DBTYPE_DBDATE,
  786.     VT_SS_TIME2 = DBTYPE_DBTIME2,
  787.     VT_SS_DATETIME2 = 212,
  788.     VT_SS_DATETIMEOFFSET = DBTYPE_DBTIMESTAMPOFFSET,
  789.     };
  790. typedef unsigned short SSVARTYPE;
  791.  
  792.  
  793. enum DBPARAMFLAGSENUM_SS_100
  794.     {    DBPARAMFLAGS_SS_ISVARIABLESCALE    = 0x40000000
  795.     } ;
  796. enum DBCOLUMNFLAGSENUM_SS_100
  797.     {   DBCOLUMNFLAGS_SS_ISVARIABLESCALE    = 0x40000000,
  798.         DBCOLUMNFLAGS_SS_ISCOLUMNSET        = 0x80000000
  799.     } ;
  800.  
  801. //-------------------------------------------------------------------
  802. // Class Factory Interface used to initialize pointer to UMS.
  803. //-------------------------------------------------------------------
  804.  
  805.  
  806. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0001_v0_0_c_ifspec;
  807. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0001_v0_0_s_ifspec;
  808.  
  809. #ifndef __IUMSInitialize_INTERFACE_DEFINED__
  810. #define __IUMSInitialize_INTERFACE_DEFINED__
  811.  
  812. /* interface IUMSInitialize */
  813. /* [unique][uuid][object][local] */ 
  814.  
  815.  
  816. EXTERN_C const IID IID_IUMSInitialize;
  817.  
  818. #if defined(__cplusplus) && !defined(CINTERFACE)
  819.     
  820.     MIDL_INTERFACE("5cf4ca14-ef21-11d0-97e7-00c04fc2ad98")
  821.     IUMSInitialize : public IUnknown
  822.     {
  823.     public:
  824.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  825.             /* [in] */ void *pUMS) = 0;
  826.         
  827.     };
  828.     
  829. #else     /* C style interface */
  830.  
  831.     typedef struct IUMSInitializeVtbl
  832.     {
  833.         BEGIN_INTERFACE
  834.         
  835.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  836.             IUMSInitialize * This,
  837.             /* [in] */ REFIID riid,
  838.             /* [annotation][iid_is][out] */ 
  839.             __RPC__deref_out  void **ppvObject);
  840.         
  841.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  842.             IUMSInitialize * This);
  843.         
  844.         ULONG ( STDMETHODCALLTYPE *Release )( 
  845.             IUMSInitialize * This);
  846.         
  847.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  848.             IUMSInitialize * This,
  849.             /* [in] */ void *pUMS);
  850.         
  851.         END_INTERFACE
  852.     } IUMSInitializeVtbl;
  853.  
  854.     interface IUMSInitialize
  855.     {
  856.         CONST_VTBL struct IUMSInitializeVtbl *lpVtbl;
  857.     };
  858.  
  859.     
  860.  
  861. #ifdef COBJMACROS
  862.  
  863.  
  864. #define IUMSInitialize_QueryInterface(This,riid,ppvObject)    \
  865.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  866.  
  867. #define IUMSInitialize_AddRef(This)    \
  868.     ( (This)->lpVtbl -> AddRef(This) ) 
  869.  
  870. #define IUMSInitialize_Release(This)    \
  871.     ( (This)->lpVtbl -> Release(This) ) 
  872.  
  873.  
  874. #define IUMSInitialize_Initialize(This,pUMS)    \
  875.     ( (This)->lpVtbl -> Initialize(This,pUMS) ) 
  876.  
  877. #endif /* COBJMACROS */
  878.  
  879.  
  880. #endif     /* C style interface */
  881.  
  882.  
  883.  
  884.  
  885. #endif     /* __IUMSInitialize_INTERFACE_DEFINED__ */
  886.  
  887.  
  888. /* interface __MIDL_itf_sqlncli_0000_0002 */
  889. /* [local] */ 
  890.  
  891.  
  892. // the structure returned by  ISQLServerErrorInfo::GetSQLServerInfo
  893. typedef struct tagSSErrorInfo
  894.     {
  895.     LPOLESTR pwszMessage;
  896.     LPOLESTR pwszServer;
  897.     LPOLESTR pwszProcedure;
  898.     LONG lNative;
  899.     BYTE bState;
  900.     BYTE bClass;
  901.     WORD wLineNumber;
  902.     }     SSERRORINFO;
  903.  
  904.  
  905.  
  906. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0002_v0_0_c_ifspec;
  907. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0002_v0_0_s_ifspec;
  908.  
  909. #ifndef __ISQLServerErrorInfo_INTERFACE_DEFINED__
  910. #define __ISQLServerErrorInfo_INTERFACE_DEFINED__
  911.  
  912. /* interface ISQLServerErrorInfo */
  913. /* [unique][uuid][object][local] */ 
  914.  
  915.  
  916. EXTERN_C const IID IID_ISQLServerErrorInfo;
  917.  
  918. #if defined(__cplusplus) && !defined(CINTERFACE)
  919.     
  920.     MIDL_INTERFACE("5CF4CA12-EF21-11d0-97E7-00C04FC2AD98")
  921.     ISQLServerErrorInfo : public IUnknown
  922.     {
  923.     public:
  924.         virtual HRESULT STDMETHODCALLTYPE GetErrorInfo( 
  925.             /* [out] */ SSERRORINFO **ppErrorInfo,
  926.             /* [out] */ OLECHAR **ppStringsBuffer) = 0;
  927.         
  928.     };
  929.     
  930. #else     /* C style interface */
  931.  
  932.     typedef struct ISQLServerErrorInfoVtbl
  933.     {
  934.         BEGIN_INTERFACE
  935.         
  936.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  937.             ISQLServerErrorInfo * This,
  938.             /* [in] */ REFIID riid,
  939.             /* [annotation][iid_is][out] */ 
  940.             __RPC__deref_out  void **ppvObject);
  941.         
  942.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  943.             ISQLServerErrorInfo * This);
  944.         
  945.         ULONG ( STDMETHODCALLTYPE *Release )( 
  946.             ISQLServerErrorInfo * This);
  947.         
  948.         HRESULT ( STDMETHODCALLTYPE *GetErrorInfo )( 
  949.             ISQLServerErrorInfo * This,
  950.             /* [out] */ SSERRORINFO **ppErrorInfo,
  951.             /* [out] */ OLECHAR **ppStringsBuffer);
  952.         
  953.         END_INTERFACE
  954.     } ISQLServerErrorInfoVtbl;
  955.  
  956.     interface ISQLServerErrorInfo
  957.     {
  958.         CONST_VTBL struct ISQLServerErrorInfoVtbl *lpVtbl;
  959.     };
  960.  
  961.     
  962.  
  963. #ifdef COBJMACROS
  964.  
  965.  
  966. #define ISQLServerErrorInfo_QueryInterface(This,riid,ppvObject)    \
  967.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  968.  
  969. #define ISQLServerErrorInfo_AddRef(This)    \
  970.     ( (This)->lpVtbl -> AddRef(This) ) 
  971.  
  972. #define ISQLServerErrorInfo_Release(This)    \
  973.     ( (This)->lpVtbl -> Release(This) ) 
  974.  
  975.  
  976. #define ISQLServerErrorInfo_GetErrorInfo(This,ppErrorInfo,ppStringsBuffer)    \
  977.     ( (This)->lpVtbl -> GetErrorInfo(This,ppErrorInfo,ppStringsBuffer) ) 
  978.  
  979. #endif /* COBJMACROS */
  980.  
  981.  
  982. #endif     /* C style interface */
  983.  
  984.  
  985.  
  986.  
  987. #endif     /* __ISQLServerErrorInfo_INTERFACE_DEFINED__ */
  988.  
  989.  
  990. #ifndef __IRowsetFastLoad_INTERFACE_DEFINED__
  991. #define __IRowsetFastLoad_INTERFACE_DEFINED__
  992.  
  993. /* interface IRowsetFastLoad */
  994. /* [unique][uuid][object][local] */ 
  995.  
  996.  
  997. EXTERN_C const IID IID_IRowsetFastLoad;
  998.  
  999. #if defined(__cplusplus) && !defined(CINTERFACE)
  1000.     
  1001.     MIDL_INTERFACE("5CF4CA13-EF21-11d0-97E7-00C04FC2AD98")
  1002.     IRowsetFastLoad : public IUnknown
  1003.     {
  1004.     public:
  1005.         virtual HRESULT STDMETHODCALLTYPE InsertRow( 
  1006.             /* [in] */ HACCESSOR hAccessor,
  1007.             /* [in] */ void *pData) = 0;
  1008.         
  1009.         virtual HRESULT STDMETHODCALLTYPE Commit( 
  1010.             /* [in] */ BOOL fDone) = 0;
  1011.         
  1012.     };
  1013.     
  1014. #else     /* C style interface */
  1015.  
  1016.     typedef struct IRowsetFastLoadVtbl
  1017.     {
  1018.         BEGIN_INTERFACE
  1019.         
  1020.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1021.             IRowsetFastLoad * This,
  1022.             /* [in] */ REFIID riid,
  1023.             /* [annotation][iid_is][out] */ 
  1024.             __RPC__deref_out  void **ppvObject);
  1025.         
  1026.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1027.             IRowsetFastLoad * This);
  1028.         
  1029.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1030.             IRowsetFastLoad * This);
  1031.         
  1032.         HRESULT ( STDMETHODCALLTYPE *InsertRow )( 
  1033.             IRowsetFastLoad * This,
  1034.             /* [in] */ HACCESSOR hAccessor,
  1035.             /* [in] */ void *pData);
  1036.         
  1037.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  1038.             IRowsetFastLoad * This,
  1039.             /* [in] */ BOOL fDone);
  1040.         
  1041.         END_INTERFACE
  1042.     } IRowsetFastLoadVtbl;
  1043.  
  1044.     interface IRowsetFastLoad
  1045.     {
  1046.         CONST_VTBL struct IRowsetFastLoadVtbl *lpVtbl;
  1047.     };
  1048.  
  1049.     
  1050.  
  1051. #ifdef COBJMACROS
  1052.  
  1053.  
  1054. #define IRowsetFastLoad_QueryInterface(This,riid,ppvObject)    \
  1055.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  1056.  
  1057. #define IRowsetFastLoad_AddRef(This)    \
  1058.     ( (This)->lpVtbl -> AddRef(This) ) 
  1059.  
  1060. #define IRowsetFastLoad_Release(This)    \
  1061.     ( (This)->lpVtbl -> Release(This) ) 
  1062.  
  1063.  
  1064. #define IRowsetFastLoad_InsertRow(This,hAccessor,pData)    \
  1065.     ( (This)->lpVtbl -> InsertRow(This,hAccessor,pData) ) 
  1066.  
  1067. #define IRowsetFastLoad_Commit(This,fDone)    \
  1068.     ( (This)->lpVtbl -> Commit(This,fDone) ) 
  1069.  
  1070. #endif /* COBJMACROS */
  1071.  
  1072.  
  1073. #endif     /* C style interface */
  1074.  
  1075.  
  1076.  
  1077.  
  1078. #endif     /* __IRowsetFastLoad_INTERFACE_DEFINED__ */
  1079.  
  1080.  
  1081. /* interface __MIDL_itf_sqlncli_0000_0004 */
  1082. /* [local] */ 
  1083.  
  1084. #include <pshpack8.h>    // 8-byte structure packing
  1085.  
  1086. typedef struct tagDBTIME2
  1087.     {
  1088.     USHORT hour;
  1089.     USHORT minute;
  1090.     USHORT second;
  1091.     ULONG fraction;
  1092.     }     DBTIME2;
  1093.  
  1094. typedef struct tagDBTIMESTAMPOFFSET
  1095.     {
  1096.     SHORT year;
  1097.     USHORT month;
  1098.     USHORT day;
  1099.     USHORT hour;
  1100.     USHORT minute;
  1101.     USHORT second;
  1102.     ULONG fraction;
  1103.     SHORT timezone_hour;
  1104.     SHORT timezone_minute;
  1105.     }     DBTIMESTAMPOFFSET;
  1106.  
  1107. #include <poppack.h>     // restore original structure packing
  1108.  
  1109. struct SSVARIANT
  1110.     {
  1111.     SSVARTYPE vt;
  1112.     DWORD dwReserved1;
  1113.     DWORD dwReserved2;
  1114.     union 
  1115.         {
  1116.         BYTE bTinyIntVal;
  1117.         SHORT sShortIntVal;
  1118.         LONG lIntVal;
  1119.         LONGLONG llBigIntVal;
  1120.         FLOAT fltRealVal;
  1121.         DOUBLE dblFloatVal;
  1122.         CY cyMoneyVal;
  1123.         VARIANT_BOOL fBitVal;
  1124.         BYTE rgbGuidVal[ 16 ];
  1125.         DB_NUMERIC numNumericVal;
  1126.         DBDATE dDateVal;
  1127.         DBTIMESTAMP tsDateTimeVal;
  1128.         struct _Time2Val
  1129.             {
  1130.             DBTIME2 tTime2Val;
  1131.             BYTE bScale;
  1132.             }     Time2Val;
  1133.         struct _DateTimeVal
  1134.             {
  1135.             DBTIMESTAMP tsDateTimeVal;
  1136.             BYTE bScale;
  1137.             }     DateTimeVal;
  1138.         struct _DateTimeOffsetVal
  1139.             {
  1140.             DBTIMESTAMPOFFSET tsoDateTimeOffsetVal;
  1141.             BYTE bScale;
  1142.             }     DateTimeOffsetVal;
  1143.         struct _NCharVal
  1144.             {
  1145.             SHORT sActualLength;
  1146.             SHORT sMaxLength;
  1147.             WCHAR *pwchNCharVal;
  1148.             BYTE rgbReserved[ 5 ];
  1149.             DWORD dwReserved;
  1150.             WCHAR *pwchReserved;
  1151.             }     NCharVal;
  1152.         struct _CharVal
  1153.             {
  1154.             SHORT sActualLength;
  1155.             SHORT sMaxLength;
  1156.             CHAR *pchCharVal;
  1157.             BYTE rgbReserved[ 5 ];
  1158.             DWORD dwReserved;
  1159.             WCHAR *pwchReserved;
  1160.             }     CharVal;
  1161.         struct _BinaryVal
  1162.             {
  1163.             SHORT sActualLength;
  1164.             SHORT sMaxLength;
  1165.             BYTE *prgbBinaryVal;
  1166.             DWORD dwReserved;
  1167.             }     BinaryVal;
  1168.         struct _UnknownType
  1169.             {
  1170.             DWORD dwActualLength;
  1171.             BYTE rgMetadata[ 16 ];
  1172.             BYTE *pUnknownData;
  1173.             }     UnknownType;
  1174.         struct _BLOBType
  1175.             {
  1176.             DBOBJECT dbobj;
  1177.             IUnknown *pUnk;
  1178.             }     BLOBType;
  1179.         }     ;
  1180.     } ;
  1181. typedef DWORD LOCKMODE;
  1182.  
  1183.  
  1184. enum LOCKMODEENUM
  1185.     {    LOCKMODE_INVALID    = 0,
  1186.     LOCKMODE_EXCLUSIVE    = ( LOCKMODE_INVALID + 1 ) ,
  1187.     LOCKMODE_SHARED    = ( LOCKMODE_EXCLUSIVE + 1 ) 
  1188.     } ;
  1189.  
  1190.  
  1191. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0004_v0_0_c_ifspec;
  1192. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0004_v0_0_s_ifspec;
  1193.  
  1194. #ifndef __ISchemaLock_INTERFACE_DEFINED__
  1195. #define __ISchemaLock_INTERFACE_DEFINED__
  1196.  
  1197. /* interface ISchemaLock */
  1198. /* [unique][uuid][object][local] */ 
  1199.  
  1200.  
  1201. EXTERN_C const IID IID_ISchemaLock;
  1202.  
  1203. #if defined(__cplusplus) && !defined(CINTERFACE)
  1204.     
  1205.     MIDL_INTERFACE("4C2389FB-2511-11d4-B258-00C04F7971CE")
  1206.     ISchemaLock : public IUnknown
  1207.     {
  1208.     public:
  1209.         virtual HRESULT STDMETHODCALLTYPE GetSchemaLock( 
  1210.             /* [in] */ DBID *pTableID,
  1211.             /* [in] */ LOCKMODE lmMode,
  1212.             /* [out] */ HANDLE *phLockHandle,
  1213.             /* [out] */ ULONGLONG *pTableVersion) = 0;
  1214.         
  1215.         virtual HRESULT STDMETHODCALLTYPE ReleaseSchemaLock( 
  1216.             /* [in] */ HANDLE hLockHandle) = 0;
  1217.         
  1218.     };
  1219.     
  1220. #else     /* C style interface */
  1221.  
  1222.     typedef struct ISchemaLockVtbl
  1223.     {
  1224.         BEGIN_INTERFACE
  1225.         
  1226.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1227.             ISchemaLock * This,
  1228.             /* [in] */ REFIID riid,
  1229.             /* [annotation][iid_is][out] */ 
  1230.             __RPC__deref_out  void **ppvObject);
  1231.         
  1232.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1233.             ISchemaLock * This);
  1234.         
  1235.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1236.             ISchemaLock * This);
  1237.         
  1238.         HRESULT ( STDMETHODCALLTYPE *GetSchemaLock )( 
  1239.             ISchemaLock * This,
  1240.             /* [in] */ DBID *pTableID,
  1241.             /* [in] */ LOCKMODE lmMode,
  1242.             /* [out] */ HANDLE *phLockHandle,
  1243.             /* [out] */ ULONGLONG *pTableVersion);
  1244.         
  1245.         HRESULT ( STDMETHODCALLTYPE *ReleaseSchemaLock )( 
  1246.             ISchemaLock * This,
  1247.             /* [in] */ HANDLE hLockHandle);
  1248.         
  1249.         END_INTERFACE
  1250.     } ISchemaLockVtbl;
  1251.  
  1252.     interface ISchemaLock
  1253.     {
  1254.         CONST_VTBL struct ISchemaLockVtbl *lpVtbl;
  1255.     };
  1256.  
  1257.     
  1258.  
  1259. #ifdef COBJMACROS
  1260.  
  1261.  
  1262. #define ISchemaLock_QueryInterface(This,riid,ppvObject)    \
  1263.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  1264.  
  1265. #define ISchemaLock_AddRef(This)    \
  1266.     ( (This)->lpVtbl -> AddRef(This) ) 
  1267.  
  1268. #define ISchemaLock_Release(This)    \
  1269.     ( (This)->lpVtbl -> Release(This) ) 
  1270.  
  1271.  
  1272. #define ISchemaLock_GetSchemaLock(This,pTableID,lmMode,phLockHandle,pTableVersion)    \
  1273.     ( (This)->lpVtbl -> GetSchemaLock(This,pTableID,lmMode,phLockHandle,pTableVersion) ) 
  1274.  
  1275. #define ISchemaLock_ReleaseSchemaLock(This,hLockHandle)    \
  1276.     ( (This)->lpVtbl -> ReleaseSchemaLock(This,hLockHandle) ) 
  1277.  
  1278. #endif /* COBJMACROS */
  1279.  
  1280.  
  1281. #endif     /* C style interface */
  1282.  
  1283.  
  1284.  
  1285.  
  1286. #endif     /* __ISchemaLock_INTERFACE_DEFINED__ */
  1287.  
  1288.  
  1289. #ifndef __IBCPSession_INTERFACE_DEFINED__
  1290. #define __IBCPSession_INTERFACE_DEFINED__
  1291.  
  1292. /* interface IBCPSession */
  1293. /* [unique][uuid][object][local] */ 
  1294.  
  1295.  
  1296. EXTERN_C const IID IID_IBCPSession;
  1297.  
  1298. #if defined(__cplusplus) && !defined(CINTERFACE)
  1299.     
  1300.     MIDL_INTERFACE("88352D80-42D1-42f0-A170-AB0F8B45B939")
  1301.     IBCPSession : public IUnknown
  1302.     {
  1303.     public:
  1304.         virtual HRESULT STDMETHODCALLTYPE BCPColFmt( 
  1305.             /* [in] */ DBORDINAL idxUserDataCol,
  1306.             /* [in] */ int eUserDataType,
  1307.             /* [in] */ int cbIndicator,
  1308.             /* [in] */ int cbUserData,
  1309.             /* [size_is][in] */ BYTE *pbUserDataTerm,
  1310.             /* [in] */ int cbUserDataTerm,
  1311.             /* [in] */ DBORDINAL idxServerCol) = 0;
  1312.         
  1313.         virtual HRESULT STDMETHODCALLTYPE BCPColumns( 
  1314.             /* [in] */ DBCOUNTITEM nColumns) = 0;
  1315.         
  1316.         virtual HRESULT STDMETHODCALLTYPE BCPControl( 
  1317.             /* [in] */ int eOption,
  1318.             /* [in] */ void *iValue) = 0;
  1319.         
  1320.         virtual HRESULT STDMETHODCALLTYPE BCPDone( void) = 0;
  1321.         
  1322.         virtual HRESULT STDMETHODCALLTYPE BCPExec( 
  1323.             /* [out] */ DBROWCOUNT *pRowsCopied) = 0;
  1324.         
  1325.         virtual HRESULT STDMETHODCALLTYPE BCPInit( 
  1326.             /* [string][in] */ const wchar_t *pwszTable,
  1327.             /* [string][in] */ const wchar_t *pwszDataFile,
  1328.             /* [string][in] */ const wchar_t *pwszErrorFile,
  1329.             /* [in] */ int eDirection) = 0;
  1330.         
  1331.         virtual HRESULT STDMETHODCALLTYPE BCPReadFmt( 
  1332.             /* [string][in] */ const wchar_t *pwszFormatFile) = 0;
  1333.         
  1334.         virtual HRESULT STDMETHODCALLTYPE BCPWriteFmt( 
  1335.             /* [string][in] */ const wchar_t *pwszFormatFile) = 0;
  1336.         
  1337.     };
  1338.     
  1339. #else     /* C style interface */
  1340.  
  1341.     typedef struct IBCPSessionVtbl
  1342.     {
  1343.         BEGIN_INTERFACE
  1344.         
  1345.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1346.             IBCPSession * This,
  1347.             /* [in] */ REFIID riid,
  1348.             /* [annotation][iid_is][out] */ 
  1349.             __RPC__deref_out  void **ppvObject);
  1350.         
  1351.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1352.             IBCPSession * This);
  1353.         
  1354.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1355.             IBCPSession * This);
  1356.         
  1357.         HRESULT ( STDMETHODCALLTYPE *BCPColFmt )( 
  1358.             IBCPSession * This,
  1359.             /* [in] */ DBORDINAL idxUserDataCol,
  1360.             /* [in] */ int eUserDataType,
  1361.             /* [in] */ int cbIndicator,
  1362.             /* [in] */ int cbUserData,
  1363.             /* [size_is][in] */ BYTE *pbUserDataTerm,
  1364.             /* [in] */ int cbUserDataTerm,
  1365.             /* [in] */ DBORDINAL idxServerCol);
  1366.         
  1367.         HRESULT ( STDMETHODCALLTYPE *BCPColumns )( 
  1368.             IBCPSession * This,
  1369.             /* [in] */ DBCOUNTITEM nColumns);
  1370.         
  1371.         HRESULT ( STDMETHODCALLTYPE *BCPControl )( 
  1372.             IBCPSession * This,
  1373.             /* [in] */ int eOption,
  1374.             /* [in] */ void *iValue);
  1375.         
  1376.         HRESULT ( STDMETHODCALLTYPE *BCPDone )( 
  1377.             IBCPSession * This);
  1378.         
  1379.         HRESULT ( STDMETHODCALLTYPE *BCPExec )( 
  1380.             IBCPSession * This,
  1381.             /* [out] */ DBROWCOUNT *pRowsCopied);
  1382.         
  1383.         HRESULT ( STDMETHODCALLTYPE *BCPInit )( 
  1384.             IBCPSession * This,
  1385.             /* [string][in] */ const wchar_t *pwszTable,
  1386.             /* [string][in] */ const wchar_t *pwszDataFile,
  1387.             /* [string][in] */ const wchar_t *pwszErrorFile,
  1388.             /* [in] */ int eDirection);
  1389.         
  1390.         HRESULT ( STDMETHODCALLTYPE *BCPReadFmt )( 
  1391.             IBCPSession * This,
  1392.             /* [string][in] */ const wchar_t *pwszFormatFile);
  1393.         
  1394.         HRESULT ( STDMETHODCALLTYPE *BCPWriteFmt )( 
  1395.             IBCPSession * This,
  1396.             /* [string][in] */ const wchar_t *pwszFormatFile);
  1397.         
  1398.         END_INTERFACE
  1399.     } IBCPSessionVtbl;
  1400.  
  1401.     interface IBCPSession
  1402.     {
  1403.         CONST_VTBL struct IBCPSessionVtbl *lpVtbl;
  1404.     };
  1405.  
  1406.     
  1407.  
  1408. #ifdef COBJMACROS
  1409.  
  1410.  
  1411. #define IBCPSession_QueryInterface(This,riid,ppvObject)    \
  1412.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  1413.  
  1414. #define IBCPSession_AddRef(This)    \
  1415.     ( (This)->lpVtbl -> AddRef(This) ) 
  1416.  
  1417. #define IBCPSession_Release(This)    \
  1418.     ( (This)->lpVtbl -> Release(This) ) 
  1419.  
  1420.  
  1421. #define IBCPSession_BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol)    \
  1422.     ( (This)->lpVtbl -> BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol) ) 
  1423.  
  1424. #define IBCPSession_BCPColumns(This,nColumns)    \
  1425.     ( (This)->lpVtbl -> BCPColumns(This,nColumns) ) 
  1426.  
  1427. #define IBCPSession_BCPControl(This,eOption,iValue)    \
  1428.     ( (This)->lpVtbl -> BCPControl(This,eOption,iValue) ) 
  1429.  
  1430. #define IBCPSession_BCPDone(This)    \
  1431.     ( (This)->lpVtbl -> BCPDone(This) ) 
  1432.  
  1433. #define IBCPSession_BCPExec(This,pRowsCopied)    \
  1434.     ( (This)->lpVtbl -> BCPExec(This,pRowsCopied) ) 
  1435.  
  1436. #define IBCPSession_BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection)    \
  1437.     ( (This)->lpVtbl -> BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection) ) 
  1438.  
  1439. #define IBCPSession_BCPReadFmt(This,pwszFormatFile)    \
  1440.     ( (This)->lpVtbl -> BCPReadFmt(This,pwszFormatFile) ) 
  1441.  
  1442. #define IBCPSession_BCPWriteFmt(This,pwszFormatFile)    \
  1443.     ( (This)->lpVtbl -> BCPWriteFmt(This,pwszFormatFile) ) 
  1444.  
  1445. #endif /* COBJMACROS */
  1446.  
  1447.  
  1448. #endif     /* C style interface */
  1449.  
  1450.  
  1451.  
  1452.  
  1453. #endif     /* __IBCPSession_INTERFACE_DEFINED__ */
  1454.  
  1455.  
  1456. /* interface __MIDL_itf_sqlncli_0000_0006 */
  1457. /* [local] */ 
  1458.  
  1459.  
  1460. #endif //_SQLOLEDB_H_
  1461.  
  1462. #define ISOLATIONLEVEL_SNAPSHOT          ((ISOLATIONLEVEL)(0x01000000)) // Changes made in other transactions can not be seen.
  1463.  
  1464. #define DBPROPVAL_TI_SNAPSHOT            0x01000000L
  1465.  
  1466.  
  1467.  
  1468. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0006_v0_0_c_ifspec;
  1469. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0006_v0_0_s_ifspec;
  1470.  
  1471. #ifndef __ISSAbort_INTERFACE_DEFINED__
  1472. #define __ISSAbort_INTERFACE_DEFINED__
  1473.  
  1474. /* interface ISSAbort */
  1475. /* [unique][uuid][object][local] */ 
  1476.  
  1477.  
  1478. EXTERN_C const IID IID_ISSAbort;
  1479.  
  1480. #if defined(__cplusplus) && !defined(CINTERFACE)
  1481.     
  1482.     MIDL_INTERFACE("5CF4CA15-EF21-11d0-97E7-00C04FC2AD98")
  1483.     ISSAbort : public IUnknown
  1484.     {
  1485.     public:
  1486.         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
  1487.         
  1488.     };
  1489.     
  1490. #else     /* C style interface */
  1491.  
  1492.     typedef struct ISSAbortVtbl
  1493.     {
  1494.         BEGIN_INTERFACE
  1495.         
  1496.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1497.             ISSAbort * This,
  1498.             /* [in] */ REFIID riid,
  1499.             /* [annotation][iid_is][out] */ 
  1500.             __RPC__deref_out  void **ppvObject);
  1501.         
  1502.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1503.             ISSAbort * This);
  1504.         
  1505.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1506.             ISSAbort * This);
  1507.         
  1508.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  1509.             ISSAbort * This);
  1510.         
  1511.         END_INTERFACE
  1512.     } ISSAbortVtbl;
  1513.  
  1514.     interface ISSAbort
  1515.     {
  1516.         CONST_VTBL struct ISSAbortVtbl *lpVtbl;
  1517.     };
  1518.  
  1519.     
  1520.  
  1521. #ifdef COBJMACROS
  1522.  
  1523.  
  1524. #define ISSAbort_QueryInterface(This,riid,ppvObject)    \
  1525.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  1526.  
  1527. #define ISSAbort_AddRef(This)    \
  1528.     ( (This)->lpVtbl -> AddRef(This) ) 
  1529.  
  1530. #define ISSAbort_Release(This)    \
  1531.     ( (This)->lpVtbl -> Release(This) ) 
  1532.  
  1533.  
  1534. #define ISSAbort_Abort(This)    \
  1535.     ( (This)->lpVtbl -> Abort(This) ) 
  1536.  
  1537. #endif /* COBJMACROS */
  1538.  
  1539.  
  1540. #endif     /* C style interface */
  1541.  
  1542.  
  1543.  
  1544.  
  1545. #endif     /* __ISSAbort_INTERFACE_DEFINED__ */
  1546.  
  1547.  
  1548. /* interface __MIDL_itf_sqlncli_0000_0007 */
  1549. /* [local] */ 
  1550.  
  1551.  
  1552. enum DBBINDFLAGENUM90
  1553.     {    DBBINDFLAG_OBJECT    = 0x2
  1554.     } ;
  1555.  
  1556. enum SSACCESSORFLAGS
  1557.     {    SSACCESSOR_ROWDATA    = 0x100
  1558.     } ;
  1559.  
  1560. enum DBPROPFLAGSENUM90
  1561.     {    DBPROPFLAGS_PARAMETER    = 0x10000
  1562.     } ;
  1563. typedef struct tagSSPARAMPROPS
  1564.     {
  1565.     DBORDINAL iOrdinal;
  1566.     ULONG cPropertySets;
  1567.     DBPROPSET *rgPropertySets;
  1568.     }     SSPARAMPROPS;
  1569.  
  1570.  
  1571.  
  1572. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0007_v0_0_c_ifspec;
  1573. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0007_v0_0_s_ifspec;
  1574.  
  1575. #ifndef __ISSCommandWithParameters_INTERFACE_DEFINED__
  1576. #define __ISSCommandWithParameters_INTERFACE_DEFINED__
  1577.  
  1578. /* interface ISSCommandWithParameters */
  1579. /* [unique][uuid][object][local] */ 
  1580.  
  1581.  
  1582. EXTERN_C const IID IID_ISSCommandWithParameters;
  1583.  
  1584. #if defined(__cplusplus) && !defined(CINTERFACE)
  1585.     
  1586.     MIDL_INTERFACE("eec30162-6087-467c-b995-7c523ce96561")
  1587.     ISSCommandWithParameters : public ICommandWithParameters
  1588.     {
  1589.     public:
  1590.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetParameterProperties( 
  1591.             /* [out][in] */ DB_UPARAMS *pcParams,
  1592.             /* [size_is][size_is][out] */ SSPARAMPROPS **prgParamProperties) = 0;
  1593.         
  1594.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetParameterProperties( 
  1595.             /* [in] */ DB_UPARAMS cParams,
  1596.             /* [size_is][unique][in] */ SSPARAMPROPS rgParamProperties[  ]) = 0;
  1597.         
  1598.     };
  1599.     
  1600. #else     /* C style interface */
  1601.  
  1602.     typedef struct ISSCommandWithParametersVtbl
  1603.     {
  1604.         BEGIN_INTERFACE
  1605.         
  1606.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1607.             ISSCommandWithParameters * This,
  1608.             /* [in] */ REFIID riid,
  1609.             /* [annotation][iid_is][out] */ 
  1610.             __RPC__deref_out  void **ppvObject);
  1611.         
  1612.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1613.             ISSCommandWithParameters * This);
  1614.         
  1615.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1616.             ISSCommandWithParameters * This);
  1617.         
  1618.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetParameterInfo )( 
  1619.             ISSCommandWithParameters * This,
  1620.             /* [out][in] */ DB_UPARAMS *pcParams,
  1621.             /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
  1622.             /* [out] */ OLECHAR **ppNamesBuffer);
  1623.         
  1624.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *MapParameterNames )( 
  1625.             ISSCommandWithParameters * This,
  1626.             /* [in] */ DB_UPARAMS cParamNames,
  1627.             /* [size_is][in] */ const OLECHAR *rgParamNames[  ],
  1628.             /* [size_is][out] */ DB_LPARAMS rgParamOrdinals[  ]);
  1629.         
  1630.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetParameterInfo )( 
  1631.             ISSCommandWithParameters * This,
  1632.             /* [in] */ DB_UPARAMS cParams,
  1633.             /* [size_is][unique][in] */ const DB_UPARAMS rgParamOrdinals[  ],
  1634.             /* [size_is][unique][in] */ const DBPARAMBINDINFO rgParamBindInfo[  ]);
  1635.         
  1636.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetParameterProperties )( 
  1637.             ISSCommandWithParameters * This,
  1638.             /* [out][in] */ DB_UPARAMS *pcParams,
  1639.             /* [size_is][size_is][out] */ SSPARAMPROPS **prgParamProperties);
  1640.         
  1641.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetParameterProperties )( 
  1642.             ISSCommandWithParameters * This,
  1643.             /* [in] */ DB_UPARAMS cParams,
  1644.             /* [size_is][unique][in] */ SSPARAMPROPS rgParamProperties[  ]);
  1645.         
  1646.         END_INTERFACE
  1647.     } ISSCommandWithParametersVtbl;
  1648.  
  1649.     interface ISSCommandWithParameters
  1650.     {
  1651.         CONST_VTBL struct ISSCommandWithParametersVtbl *lpVtbl;
  1652.     };
  1653.  
  1654.     
  1655.  
  1656. #ifdef COBJMACROS
  1657.  
  1658.  
  1659. #define ISSCommandWithParameters_QueryInterface(This,riid,ppvObject)    \
  1660.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  1661.  
  1662. #define ISSCommandWithParameters_AddRef(This)    \
  1663.     ( (This)->lpVtbl -> AddRef(This) ) 
  1664.  
  1665. #define ISSCommandWithParameters_Release(This)    \
  1666.     ( (This)->lpVtbl -> Release(This) ) 
  1667.  
  1668.  
  1669. #define ISSCommandWithParameters_GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer)    \
  1670.     ( (This)->lpVtbl -> GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer) ) 
  1671.  
  1672. #define ISSCommandWithParameters_MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals)    \
  1673.     ( (This)->lpVtbl -> MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals) ) 
  1674.  
  1675. #define ISSCommandWithParameters_SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo)    \
  1676.     ( (This)->lpVtbl -> SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo) ) 
  1677.  
  1678.  
  1679. #define ISSCommandWithParameters_GetParameterProperties(This,pcParams,prgParamProperties)    \
  1680.     ( (This)->lpVtbl -> GetParameterProperties(This,pcParams,prgParamProperties) ) 
  1681.  
  1682. #define ISSCommandWithParameters_SetParameterProperties(This,cParams,rgParamProperties)    \
  1683.     ( (This)->lpVtbl -> SetParameterProperties(This,cParams,rgParamProperties) ) 
  1684.  
  1685. #endif /* COBJMACROS */
  1686.  
  1687.  
  1688. #endif     /* C style interface */
  1689.  
  1690.  
  1691.  
  1692.  
  1693. #endif     /* __ISSCommandWithParameters_INTERFACE_DEFINED__ */
  1694.  
  1695.  
  1696. #ifndef __IDBAsynchStatus_INTERFACE_DEFINED__
  1697. #define __IDBAsynchStatus_INTERFACE_DEFINED__
  1698.  
  1699. /* interface IDBAsynchStatus */
  1700. /* [unique][uuid][object][local] */ 
  1701.  
  1702.  
  1703. EXTERN_C const IID IID_IDBAsynchStatus;
  1704.  
  1705. #if defined(__cplusplus) && !defined(CINTERFACE)
  1706.     
  1707.     MIDL_INTERFACE("0c733a95-2a1c-11ce-ade5-00aa0044773d")
  1708.     IDBAsynchStatus : public IUnknown
  1709.     {
  1710.     public:
  1711.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Abort( 
  1712.             /* [in] */ HCHAPTER hChapter,
  1713.             /* [in] */ DBASYNCHOP eOperation) = 0;
  1714.         
  1715.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetStatus( 
  1716.             /* [in] */ HCHAPTER hChapter,
  1717.             /* [in] */ DBASYNCHOP eOperation,
  1718.             /* [out] */ DBCOUNTITEM *pulProgress,
  1719.             /* [out] */ DBCOUNTITEM *pulProgressMax,
  1720.             /* [out] */ DBASYNCHPHASE *peAsynchPhase,
  1721.             /* [out] */ LPOLESTR *ppwszStatusText) = 0;
  1722.         
  1723.     };
  1724.     
  1725. #else     /* C style interface */
  1726.  
  1727.     typedef struct IDBAsynchStatusVtbl
  1728.     {
  1729.         BEGIN_INTERFACE
  1730.         
  1731.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1732.             IDBAsynchStatus * This,
  1733.             /* [in] */ REFIID riid,
  1734.             /* [annotation][iid_is][out] */ 
  1735.             __RPC__deref_out  void **ppvObject);
  1736.         
  1737.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1738.             IDBAsynchStatus * This);
  1739.         
  1740.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1741.             IDBAsynchStatus * This);
  1742.         
  1743.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Abort )( 
  1744.             IDBAsynchStatus * This,
  1745.             /* [in] */ HCHAPTER hChapter,
  1746.             /* [in] */ DBASYNCHOP eOperation);
  1747.         
  1748.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetStatus )( 
  1749.             IDBAsynchStatus * This,
  1750.             /* [in] */ HCHAPTER hChapter,
  1751.             /* [in] */ DBASYNCHOP eOperation,
  1752.             /* [out] */ DBCOUNTITEM *pulProgress,
  1753.             /* [out] */ DBCOUNTITEM *pulProgressMax,
  1754.             /* [out] */ DBASYNCHPHASE *peAsynchPhase,
  1755.             /* [out] */ LPOLESTR *ppwszStatusText);
  1756.         
  1757.         END_INTERFACE
  1758.     } IDBAsynchStatusVtbl;
  1759.  
  1760.     interface IDBAsynchStatus
  1761.     {
  1762.         CONST_VTBL struct IDBAsynchStatusVtbl *lpVtbl;
  1763.     };
  1764.  
  1765.     
  1766.  
  1767. #ifdef COBJMACROS
  1768.  
  1769.  
  1770. #define IDBAsynchStatus_QueryInterface(This,riid,ppvObject)    \
  1771.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  1772.  
  1773. #define IDBAsynchStatus_AddRef(This)    \
  1774.     ( (This)->lpVtbl -> AddRef(This) ) 
  1775.  
  1776. #define IDBAsynchStatus_Release(This)    \
  1777.     ( (This)->lpVtbl -> Release(This) ) 
  1778.  
  1779.  
  1780. #define IDBAsynchStatus_Abort(This,hChapter,eOperation)    \
  1781.     ( (This)->lpVtbl -> Abort(This,hChapter,eOperation) ) 
  1782.  
  1783. #define IDBAsynchStatus_GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText)    \
  1784.     ( (This)->lpVtbl -> GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText) ) 
  1785.  
  1786. #endif /* COBJMACROS */
  1787.  
  1788.  
  1789. #endif     /* C style interface */
  1790.  
  1791.  
  1792.  
  1793. /* [call_as] */ HRESULT STDMETHODCALLTYPE IDBAsynchStatus_RemoteAbort_Proxy( 
  1794.     IDBAsynchStatus * This,
  1795.     /* [in] */ HCHAPTER hChapter,
  1796.     /* [in] */ DBASYNCHOP eOperation,
  1797.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1798.  
  1799.  
  1800. void __RPC_STUB IDBAsynchStatus_RemoteAbort_Stub(
  1801.     IRpcStubBuffer *This,
  1802.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1803.     PRPC_MESSAGE _pRpcMessage,
  1804.     DWORD *_pdwStubPhase);
  1805.  
  1806.  
  1807. /* [call_as] */ HRESULT STDMETHODCALLTYPE IDBAsynchStatus_RemoteGetStatus_Proxy( 
  1808.     IDBAsynchStatus * This,
  1809.     /* [in] */ HCHAPTER hChapter,
  1810.     /* [in] */ DBASYNCHOP eOperation,
  1811.     /* [unique][out][in] */ DBCOUNTITEM *pulProgress,
  1812.     /* [unique][out][in] */ DBCOUNTITEM *pulProgressMax,
  1813.     /* [unique][out][in] */ DBASYNCHPHASE *peAsynchPhase,
  1814.     /* [unique][out][in] */ LPOLESTR *ppwszStatusText,
  1815.     /* [out] */ IErrorInfo **ppErrorInfoRem);
  1816.  
  1817.  
  1818. void __RPC_STUB IDBAsynchStatus_RemoteGetStatus_Stub(
  1819.     IRpcStubBuffer *This,
  1820.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1821.     PRPC_MESSAGE _pRpcMessage,
  1822.     DWORD *_pdwStubPhase);
  1823.  
  1824.  
  1825.  
  1826. #endif     /* __IDBAsynchStatus_INTERFACE_DEFINED__ */
  1827.  
  1828.  
  1829. #ifndef __ISSAsynchStatus_INTERFACE_DEFINED__
  1830. #define __ISSAsynchStatus_INTERFACE_DEFINED__
  1831.  
  1832. /* interface ISSAsynchStatus */
  1833. /* [unique][uuid][object][local] */ 
  1834.  
  1835.  
  1836. EXTERN_C const IID IID_ISSAsynchStatus;
  1837.  
  1838. #if defined(__cplusplus) && !defined(CINTERFACE)
  1839.     
  1840.     MIDL_INTERFACE("1FF1F743-8BB0-4c00-ACC4-C10E43B08FC1")
  1841.     ISSAsynchStatus : public IDBAsynchStatus
  1842.     {
  1843.     public:
  1844.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE WaitForAsynchCompletion( 
  1845.             /* [in] */ DWORD dwMillisecTimeOut) = 0;
  1846.         
  1847.     };
  1848.     
  1849. #else     /* C style interface */
  1850.  
  1851.     typedef struct ISSAsynchStatusVtbl
  1852.     {
  1853.         BEGIN_INTERFACE
  1854.         
  1855.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1856.             ISSAsynchStatus * This,
  1857.             /* [in] */ REFIID riid,
  1858.             /* [annotation][iid_is][out] */ 
  1859.             __RPC__deref_out  void **ppvObject);
  1860.         
  1861.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1862.             ISSAsynchStatus * This);
  1863.         
  1864.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1865.             ISSAsynchStatus * This);
  1866.         
  1867.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Abort )( 
  1868.             ISSAsynchStatus * This,
  1869.             /* [in] */ HCHAPTER hChapter,
  1870.             /* [in] */ DBASYNCHOP eOperation);
  1871.         
  1872.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetStatus )( 
  1873.             ISSAsynchStatus * This,
  1874.             /* [in] */ HCHAPTER hChapter,
  1875.             /* [in] */ DBASYNCHOP eOperation,
  1876.             /* [out] */ DBCOUNTITEM *pulProgress,
  1877.             /* [out] */ DBCOUNTITEM *pulProgressMax,
  1878.             /* [out] */ DBASYNCHPHASE *peAsynchPhase,
  1879.             /* [out] */ LPOLESTR *ppwszStatusText);
  1880.         
  1881.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *WaitForAsynchCompletion )( 
  1882.             ISSAsynchStatus * This,
  1883.             /* [in] */ DWORD dwMillisecTimeOut);
  1884.         
  1885.         END_INTERFACE
  1886.     } ISSAsynchStatusVtbl;
  1887.  
  1888.     interface ISSAsynchStatus
  1889.     {
  1890.         CONST_VTBL struct ISSAsynchStatusVtbl *lpVtbl;
  1891.     };
  1892.  
  1893.     
  1894.  
  1895. #ifdef COBJMACROS
  1896.  
  1897.  
  1898. #define ISSAsynchStatus_QueryInterface(This,riid,ppvObject)    \
  1899.     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  1900.  
  1901. #define ISSAsynchStatus_AddRef(This)    \
  1902.     ( (This)->lpVtbl -> AddRef(This) ) 
  1903.  
  1904. #define ISSAsynchStatus_Release(This)    \
  1905.     ( (This)->lpVtbl -> Release(This) ) 
  1906.  
  1907.  
  1908. #define ISSAsynchStatus_Abort(This,hChapter,eOperation)    \
  1909.     ( (This)->lpVtbl -> Abort(This,hChapter,eOperation) ) 
  1910.  
  1911. #define ISSAsynchStatus_GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText)    \
  1912.     ( (This)->lpVtbl -> GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText) ) 
  1913.  
  1914.  
  1915. #define ISSAsynchStatus_WaitForAsynchCompletion(This,dwMillisecTimeOut)    \
  1916.     ( (This)->lpVtbl -> WaitForAsynchCompletion(This,dwMillisecTimeOut) ) 
  1917.  
  1918. #endif /* COBJMACROS */
  1919.  
  1920.  
  1921. #endif     /* C style interface */
  1922.  
  1923.  
  1924.  
  1925.  
  1926. #endif     /* __ISSAsynchStatus_INTERFACE_DEFINED__ */
  1927.  
  1928.  
  1929. /* interface __MIDL_itf_sqlncli_0000_0010 */
  1930. /* [local] */ 
  1931.  
  1932. //----------------------------------------------------------------------------
  1933. // Values for STATUS bitmask for DBSCHEMA_TABLES & DBSCHEMA_TABLES_INFO
  1934. #define TABLE_HAS_UPDATE_INSTEAD_OF_TRIGGER     0x00000001 //table has IOT defined
  1935. #define TABLE_HAS_DELETE_INSTEAD_OF_TRIGGER     0x00000002 //table has IOT defined
  1936. #define TABLE_HAS_INSERT_INSTEAD_OF_TRIGGER     0x00000004 //table has IOT defined
  1937. #define TABLE_HAS_AFTER_UPDATE_TRIGGER          0x00000008 //table has update trigger
  1938. #define TABLE_HAS_AFTER_DELETE_TRIGGER          0x00000010 //table has delete trigger
  1939. #define TABLE_HAS_AFTER_INSERT_TRIGGER          0x00000020 //table has insert trigger
  1940. #define TABLE_HAS_CASCADE_UPDATE                0x00000040 //table has cascade update
  1941. #define TABLE_HAS_CASCADE_DELETE                0x00000080 //table has cascade delete
  1942.  
  1943. //----------------------------------------------------------------------------
  1944. // PropIds for DBPROP_INIT_GENERALTIMEOUT
  1945. #if (OLEDBVER >= 0x0210)
  1946. #define DBPROP_INIT_GENERALTIMEOUT      0x11cL
  1947. #endif
  1948.  
  1949. //----------------------------------------------------------------------------
  1950. // PropIds for DBPROPSET_SQLSERVERDATASOURCE
  1951. #define SSPROP_ENABLEFASTLOAD           2
  1952. #define SSPROP_ENABLEBULKCOPY           3
  1953.  
  1954. //----------------------------------------------------------------------------
  1955. // PropIds for DBPROPSET_SQLSERVERDATASOURCEINFO
  1956. #define SSPROP_UNICODELCID                       2
  1957. #define SSPROP_UNICODECOMPARISONSTYLE            3
  1958. #define SSPROP_COLUMNLEVELCOLLATION              4
  1959. #define SSPROP_CHARACTERSET                      5
  1960. #define SSPROP_SORTORDER                         6
  1961. #define SSPROP_CURRENTCOLLATION                  7
  1962. #define SSPROP_INTEGRATEDAUTHENTICATIONMETHOD    8
  1963. #define SSPROP_MUTUALLYAUTHENTICATED             9
  1964.  
  1965. //----------------------------------------------------------------------------
  1966. // PropIds for DBPROPSET_SQLSERVERDBINIT
  1967. #define SSPROP_INIT_CURRENTLANGUAGE              4
  1968. #define SSPROP_INIT_NETWORKADDRESS               5
  1969. #define SSPROP_INIT_NETWORKLIBRARY               6
  1970. #define SSPROP_INIT_USEPROCFORPREP               7
  1971. #define SSPROP_INIT_AUTOTRANSLATE                8
  1972. #define SSPROP_INIT_PACKETSIZE                   9
  1973. #define SSPROP_INIT_APPNAME                      10
  1974. #define SSPROP_INIT_WSID                         11
  1975. #define SSPROP_INIT_FILENAME                     12
  1976. #define SSPROP_INIT_ENCRYPT                      13
  1977. #define SSPROP_AUTH_REPL_SERVER_NAME             14
  1978. #define SSPROP_INIT_TAGCOLUMNCOLLATION           15
  1979. #define SSPROP_INIT_MARSCONNECTION               16
  1980. #define SSPROP_INIT_FAILOVERPARTNER              18
  1981. #define SSPROP_AUTH_OLD_PASSWORD                 19
  1982. #define SSPROP_INIT_DATATYPECOMPATIBILITY        20
  1983. #define SSPROP_INIT_TRUST_SERVER_CERTIFICATE     21
  1984. #define SSPROP_INIT_SERVERSPN                    22
  1985. #define SSPROP_INIT_FAILOVERPARTNERSPN           23
  1986.  
  1987. //-----------------------------------------------------------------------------
  1988. // Values for SSPROP_INIT_USEPROCFORPREP
  1989. #define SSPROPVAL_USEPROCFORPREP_OFF        0
  1990. #define SSPROPVAL_USEPROCFORPREP_ON         1
  1991. #define SSPROPVAL_USEPROCFORPREP_ON_DROP    2
  1992.  
  1993. //-----------------------------------------------------------------------------
  1994. // Values for SSPROP_INIT_DATATYPECOMPATIBILITY
  1995. #define SSPROPVAL_DATATYPECOMPATIBILITY_SQL2000  80
  1996. #define SSPROPVAL_DATATYPECOMPATIBILITY_DEFAULT  0
  1997.  
  1998. //----------------------------------------------------------------------------
  1999. // PropIds for DBPROPSET_SQLSERVERSESSION
  2000. #define SSPROP_QUOTEDCATALOGNAMES       2
  2001. #define SSPROP_ALLOWNATIVEVARIANT       3
  2002. #define SSPROP_SQLXMLXPROGID            4
  2003. #define SSPROP_ASYNCH_BULKCOPY          5
  2004.  
  2005. //----------------------------------------------------------------------------
  2006. // PropIds for DBPROPSET_SQLSERVERROWSET
  2007. #define SSPROP_MAXBLOBLENGTH            8
  2008. #define SSPROP_FASTLOADOPTIONS          9
  2009. #define SSPROP_FASTLOADKEEPNULLS        10
  2010. #define SSPROP_FASTLOADKEEPIDENTITY     11
  2011. #define SSPROP_CURSORAUTOFETCH          12
  2012. #define SSPROP_DEFERPREPARE             13
  2013. #define SSPROP_IRowsetFastLoad          14
  2014. #define SSPROP_QP_NOTIFICATION_TIMEOUT  17
  2015. #define SSPROP_QP_NOTIFICATION_MSGTEXT  18
  2016. #define SSPROP_QP_NOTIFICATION_OPTIONS  19
  2017. #define SSPROP_NOCOUNT_STATUS           20
  2018. #define SSPROP_COMPUTE_ID               21
  2019. #define SSPROP_COLUMN_ID                22
  2020. #define SSPROP_COMPUTE_BYLIST           23
  2021. #define SSPROP_ISSAsynchStatus          24
  2022.  
  2023. //-----------------------------------------------------------------------------
  2024. // Values for SSPROP_QP_NOTIFICATION_TIMEOUT
  2025. #define SSPROPVAL_DEFAULT_NOTIFICATION_TIMEOUT  432000 /* in sec */
  2026. #define SSPROPVAL_MAX_NOTIFICATION_TIMEOUT      0x7FFFFFFF /* in sec */
  2027. #define MAX_NOTIFICATION_LEN                    2000 /* NVARCHAR [2000] for both ID & DELIVERY_QUEUE */
  2028.  
  2029. //----------------------------------------------------------------------------
  2030. // PropIds for DBPROPSET_SQLSERVERCOLUMN
  2031. #define SSPROP_COL_COLLATIONNAME                         14
  2032. #define SSPROP_COL_UDT_CATALOGNAME                       31
  2033. #define SSPROP_COL_UDT_SCHEMANAME                        32
  2034. #define SSPROP_COL_UDT_NAME                              33
  2035. #define SSPROP_COL_XML_SCHEMACOLLECTION_CATALOGNAME      34
  2036. #define SSPROP_COL_XML_SCHEMACOLLECTION_SCHEMANAME       35
  2037. #define SSPROP_COL_XML_SCHEMACOLLECTIONNAME              36
  2038. #define SSPROP_COL_COMPUTED                              37
  2039.  
  2040.  
  2041. //----------------------------------------------------------------------------
  2042. // PropIds for DBPROPSET_SQLSERVERSTREAM
  2043. #define SSPROP_STREAM_XMLROOT                            19
  2044.  
  2045. //----------------------------------------------------------------------------
  2046. // PropIds for DBPROPSET_SQLSERVERPARAMETER
  2047. #define SSPROP_PARAM_XML_SCHEMACOLLECTION_CATALOGNAME    24
  2048. #define SSPROP_PARAM_XML_SCHEMACOLLECTION_SCHEMANAME     25
  2049. #define SSPROP_PARAM_XML_SCHEMACOLLECTIONNAME            26
  2050. #define SSPROP_PARAM_UDT_CATALOGNAME                     27
  2051. #define SSPROP_PARAM_UDT_SCHEMANAME                      28
  2052. #define SSPROP_PARAM_UDT_NAME                            29
  2053. #define SSPROP_PARAM_TYPE_CATALOGNAME                    38
  2054. #define SSPROP_PARAM_TYPE_SCHEMANAME                     39
  2055. #define SSPROP_PARAM_TYPE_TYPENAME                       40
  2056. #define SSPROP_PARAM_TABLE_DEFAULT_COLUMNS               41
  2057. #define SSPROP_PARAM_TABLE_COLUMN_SORT_ORDER             42
  2058.  
  2059. //----------------------------------------------------------------------------
  2060. // PropIds for DBPROPSET_SQLSERVERINDEX
  2061. #define SSPROP_INDEX_XML         1
  2062.  
  2063. //-----------------------------------------------------------------------------
  2064. //
  2065. #define BCP_TYPE_DEFAULT         0x00
  2066. #define BCP_TYPE_SQLTEXT         0x23
  2067. #define BCP_TYPE_SQLVARBINARY    0x25
  2068. #define BCP_TYPE_SQLINTN         0x26
  2069. #define BCP_TYPE_SQLVARCHAR      0x27
  2070. #define BCP_TYPE_SQLBINARY       0x2d
  2071. #define BCP_TYPE_SQLIMAGE        0x22
  2072. #define BCP_TYPE_SQLCHARACTER    0x2f
  2073. #define BCP_TYPE_SQLINT1         0x30
  2074. #define BCP_TYPE_SQLBIT          0x32
  2075. #define BCP_TYPE_SQLINT2         0x34
  2076. #define BCP_TYPE_SQLINT4         0x38
  2077. #define BCP_TYPE_SQLMONEY        0x3c
  2078. #define BCP_TYPE_SQLDATETIME     0x3d
  2079. #define BCP_TYPE_SQLFLT8         0x3e
  2080. #define BCP_TYPE_SQLFLTN         0x6d
  2081. #define BCP_TYPE_SQLMONEYN       0x6e
  2082. #define BCP_TYPE_SQLDATETIMN     0x6f
  2083. #define BCP_TYPE_SQLFLT4         0x3b
  2084. #define BCP_TYPE_SQLMONEY4       0x7a
  2085. #define BCP_TYPE_SQLDATETIM4     0x3a
  2086. #define BCP_TYPE_SQLDECIMAL      0x6a
  2087. #define BCP_TYPE_SQLNUMERIC      0x6c
  2088. #define BCP_TYPE_SQLUNIQUEID     0x24
  2089. #define BCP_TYPE_SQLBIGCHAR      0xaf
  2090. #define BCP_TYPE_SQLBIGVARCHAR   0xa7
  2091. #define BCP_TYPE_SQLBIGBINARY    0xad
  2092. #define BCP_TYPE_SQLBIGVARBINARY 0xa5
  2093. #define BCP_TYPE_SQLBITN         0x68
  2094. #define BCP_TYPE_SQLNCHAR        0xef
  2095. #define BCP_TYPE_SQLNVARCHAR     0xe7
  2096. #define BCP_TYPE_SQLNTEXT        0x63
  2097. #define BCP_TYPE_SQLDECIMALN     0x6a
  2098. #define BCP_TYPE_SQLNUMERICN     0x6c
  2099. #define BCP_TYPE_SQLINT8         0x7f
  2100. #define BCP_TYPE_SQLVARIANT      0x62
  2101. #define BCP_TYPE_SQLUDT          0xf0
  2102. #define BCP_TYPE_SQLXML          0xf1
  2103. #define BCP_TYPE_SQLDATE         0x28
  2104. #define BCP_TYPE_SQLTIME         0x29
  2105. #define BCP_TYPE_SQLDATETIME2    0x2a
  2106. #define BCP_TYPE_SQLDATETIMEOFFSET 0x2b
  2107.  
  2108. #define BCP_DIRECTION_IN            1
  2109. #define BCP_DIRECTION_OUT           2
  2110.  
  2111. #define BCP_OPTION_MAXERRS          1
  2112. #define BCP_OPTION_FIRST            2
  2113. #define BCP_OPTION_LAST             3
  2114. #define BCP_OPTION_BATCH            4
  2115. #define BCP_OPTION_KEEPNULLS        5
  2116. #define BCP_OPTION_ABORT            6
  2117. #define BCP_OPTION_KEEPIDENTITY     8
  2118. #define BCP_OPTION_HINTSA           10
  2119. #define BCP_OPTION_HINTSW           11
  2120. #define BCP_OPTION_FILECP           12
  2121. #define BCP_OPTION_UNICODEFILE      13
  2122. #define BCP_OPTION_TEXTFILE         14
  2123. #define BCP_OPTION_FILEFMT          15
  2124. #define BCP_OPTION_FMTXML           16
  2125. #define BCP_OPTION_FIRSTEX          17
  2126. #define BCP_OPTION_LASTEX           18
  2127. #define BCP_OPTION_ROWCOUNT         19
  2128.  
  2129. #define BCP_FILECP_ACP              0
  2130. #define BCP_FILECP_OEMCP            1
  2131. #define BCP_FILECP_RAW              (-1)
  2132.  
  2133. #ifdef UNICODE
  2134. #define BCP_OPTION_HINTS             BCP_OPTION_HINTSW
  2135. #else
  2136. #define BCP_OPTION_HINTS             BCP_OPTION_HINTSA
  2137. #endif
  2138.  
  2139. #define BCP_PREFIX_DEFAULT           (-10)
  2140.  
  2141. #define BCP_LENGTH_NULL              (-1)
  2142. #define BCP_LENGTH_VARIABLE          (-10)
  2143. //
  2144. //-----------------------------------------------------------------------------
  2145.  
  2146.  
  2147. //----------------------------------------------------------------------------
  2148. // Provider-specific Class Ids
  2149. //
  2150.  
  2151. #if SQLNCLI_VER >= 1000
  2152.  
  2153. extern const GUID OLEDBDECLSPEC CLSID_SQLNCLI10                = {0x8F4A6B68L,0x4F36,0x4e3c,{0xBE,0x81,0xBC,0x7C,0xA4,0xE9,0xC4,0x5C}};
  2154. extern const GUID OLEDBDECLSPEC CLSID_SQLNCLI10_ERROR          = {0x53F9C3BCL,0x275F,0x4FA5,{0xB3,0xE6,0x25,0xED,0xCD,0x51,0x20,0x23}};
  2155. extern const GUID OLEDBDECLSPEC CLSID_SQLNCLI10_ENUMERATOR     = {0x91E4F2A5L,0x1B07,0x45f6,{0x86,0xBF,0x92,0x03,0xC7,0xC7,0x2B,0xE3}};
  2156.  
  2157. #endif
  2158.  
  2159. extern const GUID OLEDBDECLSPEC CLSID_SQLNCLI                = {0x85ecafccL,0xbdd9,0x4b03,{0x97,0xa8,0xfa,0x65,0xcb,0xe3,0x85,0x9b}};
  2160. extern const GUID OLEDBDECLSPEC CLSID_SQLNCLI_ERROR          = {0xe8bc0a7aL,0xea71,0x4263,{0x8c,0xda,0x94,0xf3,0x88,0xb8,0xed,0x10}};
  2161. extern const GUID OLEDBDECLSPEC CLSID_SQLNCLI_ENUMERATOR     = {0x4898ad37L,0xfe05,0x42df,{0x92,0xf9,0xe8,0x57,0xdd,0xfe,0xe7,0x30}};
  2162. extern const GUID OLEDBDECLSPEC CLSID_ROWSET_TVP             = {0xc7ef28d5L,0x7bee,0x443f,{0x86,0xda,0xe3,0x98,0x4f,0xcd,0x4d,0xf9}};
  2163.  
  2164. //----------------------------------------------------------------------------
  2165. // Provider-specific Interface Ids
  2166. //
  2167. #ifndef  _SQLOLEDB_H_
  2168. extern const GUID OLEDBDECLSPEC IID_ISQLServerErrorInfo      = {0x5cf4ca12,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2169. extern const GUID OLEDBDECLSPEC IID_IRowsetFastLoad          = {0x5cf4ca13,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2170. extern const GUID OLEDBDECLSPEC IID_IUMSInitialize           = {0x5cf4ca14,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2171. extern const GUID OLEDBDECLSPEC IID_ISchemaLock              = {0x4c2389fb,0x2511,0x11d4,{0xb2,0x58,0x0,0xc0,0x4f,0x79,0x71,0xce}};
  2172. extern const GUID OLEDBDECLSPEC IID_ISQLXMLHelper            = {0xd22a7678L,0xf860,0x40cd,{0xa5,0x67,0x15,0x63,0xde,0xb4,0x6d,0x49}};
  2173. #endif //_SQLOLEDB_H_
  2174. extern const GUID OLEDBDECLSPEC IID_ISSAbort                 = {0x5cf4ca15,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2175. extern const GUID OLEDBDECLSPEC IID_IBCPSession              = {0x88352D80,0x42D1,0x42f0,{0xA1,0x70,0xAB,0x0F,0x8B,0x45,0xB9,0x39}};
  2176. extern const GUID OLEDBDECLSPEC IID_ISSCommandWithParameters = {0xeec30162,0x6087,0x467c,{0xb9,0x95,0x7c,0x52,0x3c,0xe9,0x65,0x61}};
  2177. extern const GUID OLEDBDECLSPEC IID_ISSAsynchStatus          = {0x1FF1F743,0x8BB0, 0x4c00,{0xAC,0xC4,0xC1,0x0E,0x43,0xB0,0x8F,0xC1}};
  2178.  
  2179.  
  2180. //----------------------------------------------------------------------------
  2181. // Provider-specific schema rowsets
  2182. //
  2183. #ifndef  _SQLOLEDB_H_
  2184. extern const GUID OLEDBDECLSPEC DBSCHEMA_LINKEDSERVERS               = {0x9093caf4,0x2eac,0x11d1,{0x98,0x9,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2185. #endif //_SQLOLEDB_H_
  2186. extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_ASSEMBLIES              = {0x7c1112c8, 0xc2d3, 0x4f6e, {0x94, 0x9a, 0x98, 0x3d, 0x38, 0xa5, 0x8f, 0x46}};
  2187. extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_ASSEMBLY_DEPENDENCIES   = {0xcb0f837b, 0x974c, 0x41b8, {0x90, 0x9d, 0x64, 0x9c, 0xaf, 0x45, 0xad, 0x2f}};
  2188. extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_USER_TYPES              = {0xf1198bd8, 0xa424, 0x4ea3, {0x8d, 0x4c, 0x60, 0x7e, 0xee, 0x2b, 0xab, 0x60}};
  2189. extern const GUID OLEDBDECLSPEC DBSCHEMA_XML_COLLECTIONS             = {0x56bfad8c, 0x6e8f, 0x480d, {0x91, 0xde, 0x35, 0x16, 0xd9, 0x9a, 0x5d, 0x10}};
  2190. extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_TABLE_TYPES             = {0x4e26cde7, 0xaaa4, 0x41ed, {0x93, 0xdd, 0x37, 0x6e, 0x6d, 0x40, 0x9c, 0x17}};
  2191. extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_TABLE_TYPE_PRIMARY_KEYS = {0x9738faea, 0x31e8, 0x4f63, {0xae,  0xd, 0x61, 0x33, 0x16, 0x41, 0x8c, 0xdd}};
  2192. extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_TABLE_TYPE_COLUMNS      = {0xa663d94b, 0xddf7, 0x4a7f, {0xa5, 0x37, 0xd6, 0x1f, 0x12, 0x36, 0x5d, 0x7c}};
  2193. extern const GUID OLEDBDECLSPEC DBSCHEMA_COLUMNS_EXTENDED            = {0x66462f01, 0x633a, 0x44d9, {0xb0, 0xd0, 0xfe, 0x66, 0xf2, 0x1a, 0x0d, 0x24}};
  2194. extern const GUID OLEDBDECLSPEC DBSCHEMA_SPARSE_COLUMN_SET           = {0x31a4837c, 0xf9ff, 0x405f, {0x89, 0x82, 0x02, 0x19, 0xaa, 0xaa, 0x4a, 0x12}};
  2195.  
  2196.  
  2197. #ifndef CRESTRICTIONS_DBSCHEMA_LINKEDSERVERS
  2198. #define CRESTRICTIONS_DBSCHEMA_LINKEDSERVERS    1
  2199. #endif
  2200.  
  2201. #ifndef CRESTRICTIONS_DBSCHEMA_ASSEMBLIES
  2202. #define CRESTRICTIONS_DBSCHEMA_SQL_ASSEMBLIES       4
  2203. #endif
  2204.  
  2205. #ifndef CRESTRICTIONS_DBSCHEMA_ASSEMBLY_DEPENDENCIES
  2206. #define CRESTRICTIONS_DBSCHEMA_SQL_ASSEMBLY_DEPENDENCIES 4
  2207. #endif
  2208.  
  2209. #ifndef CRESTRICTIONS_DBSCHEMA_USER_TYPES
  2210. #define CRESTRICTIONS_DBSCHEMA_SQL_USER_TYPES   3
  2211. #endif
  2212.  
  2213. #ifndef CRESTRICTIONS_DBSCHEMA_XML_COLLECTIONS
  2214. #define CRESTRICTIONS_DBSCHEMA_XML_COLLECTIONS   4
  2215. #endif
  2216.  
  2217. #ifndef CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPES
  2218. #define CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPES    3
  2219. #endif
  2220.  
  2221. #ifndef CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPE_PRIMARY_KEYS
  2222. #define CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPE_PRIMARY_KEYS    3
  2223. #endif
  2224.  
  2225. #ifndef CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPE_COLUMNS
  2226. #define CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPE_COLUMNS    4
  2227. #endif
  2228.  
  2229. #ifndef CRESTRICTIONS_DBSCHEMA_COLUMNS_EXTENDED
  2230. #define CRESTRICTIONS_DBSCHEMA_COLUMNS_EXTENDED    4
  2231. #endif
  2232.  
  2233. #ifndef CRESTRICTIONS_DBSCHEMA_SPARSE_COLUMN_SET
  2234. #define CRESTRICTIONS_DBSCHEMA_SPARSE_COLUMN_SET    4
  2235. #endif
  2236.  
  2237.  
  2238. //----------------------------------------------------------------------------
  2239. // Provider-specific property sets
  2240. //
  2241. #ifndef  _SQLOLEDB_H_
  2242. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERDATASOURCE    = {0x28efaee4,0x2d2c,0x11d1,{0x98,0x7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2243. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERDATASOURCEINFO= {0xdf10cb94,0x35f6,0x11d2,{0x9c,0x54,0x0,0xc0,0x4f,0x79,0x71,0xd3}};
  2244. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERDBINIT        = {0x5cf4ca10,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2245. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERROWSET        = {0x5cf4ca11,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2246. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERSESSION       = {0x28efaee5,0x2d2c,0x11d1,{0x98,0x7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
  2247. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERCOLUMN        = {0x3b63fb5e,0x3fbb,0x11d3,{0x9f,0x29,0x0,0xc0,0x4f,0x8e,0xe9,0xdc}};
  2248. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERSTREAM        = {0x9f79c073,0x8a6d,0x4bca,{0xa8,0xa8,0xc9,0xb7,0x9a,0x9b,0x96,0x2d}};
  2249. #endif //_SQLOLEDB_H_
  2250. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERPARAMETER     = {0xfee09128,0xa67d,0x47ea,{0x8d,0x40,0x24,0xa1,0xd4,0x73,0x7e,0x8d}};
  2251. extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERINDEX         = {0xE428B84E,0xA6B7,0x413a,{0x94,0x65,0x56,0x23,0x2E,0x0D,0x2B,0xEB}};
  2252. extern const GUID OLEDBDECLSPEC DBPROPSET_PARAMETERALL           = {0x2cd2b7d8,0xe7c2,0x4f6c,{0x9b,0x30,0x75,0xe2,0x58,0x46,0x10,0x97}};
  2253.  
  2254.  
  2255. //----------------------------------------------------------------------------
  2256. // Provider-specific columns for IColumnsRowset
  2257. //
  2258. #define DBCOLUMN_SS_X_GUID {0x627bd890,0xed54,0x11d2,{0xb9,0x94,0x0,0xc0,0x4f,0x8c,0xa8,0x2c}}
  2259. //
  2260. #ifndef  _SQLOLEDB_H_
  2261. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_COMPFLAGS        = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)100};
  2262. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_SORTID           = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)101};
  2263. extern const DBID OLEDBDECLSPEC DBCOLUMN_BASETABLEINSTANCE   = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)102};
  2264. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_TDSCOLLATION     = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)103};
  2265. #endif //_SQLOLEDB_H_
  2266. extern const DBID OLEDBDECLSPEC DBCOLUMN_BASESERVERNAME      = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)104};
  2267. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_XML_SCHEMACOLLECTION_CATALOGNAME= {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)105};
  2268. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_XML_SCHEMACOLLECTION_SCHEMANAME = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)106};
  2269. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_XML_SCHEMACOLLECTIONNAME        = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)107};
  2270. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_UDT_CATALOGNAME  = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)108};
  2271. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_UDT_SCHEMANAME   = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)109};
  2272. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_UDT_NAME         = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)110};
  2273. extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_ASSEMBLY_TYPENAME= {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)111};
  2274.  
  2275. // OLEDB part of SQL Server Native Client header - end here!
  2276. #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
  2277.  
  2278. // ODBC part of SQL Server Native Client header - begin here!
  2279. #if defined(_SQLNCLI_ODBC_) || !defined(_SQLNCLI_OLEDB_)
  2280. #ifdef ODBCVER
  2281.  
  2282. // max SQL Server identifier length
  2283. #define SQL_MAX_SQLSERVERNAME                       128
  2284.  
  2285. // SQLSetConnectAttr driver specific defines.
  2286. // Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server Native Client driver usage.
  2287. // Connection attributes
  2288. #define SQL_COPT_SS_BASE                                1200
  2289. #define SQL_COPT_SS_REMOTE_PWD                          (SQL_COPT_SS_BASE+1) // dbrpwset SQLSetConnectOption only
  2290. #define SQL_COPT_SS_USE_PROC_FOR_PREP                   (SQL_COPT_SS_BASE+2) // Use create proc for SQLPrepare
  2291. #define SQL_COPT_SS_INTEGRATED_SECURITY                 (SQL_COPT_SS_BASE+3) // Force integrated security on login
  2292. #define SQL_COPT_SS_PRESERVE_CURSORS                    (SQL_COPT_SS_BASE+4) // Preserve server cursors after SQLTransact
  2293. #define SQL_COPT_SS_USER_DATA                           (SQL_COPT_SS_BASE+5) // dbgetuserdata/dbsetuserdata
  2294. #define SQL_COPT_SS_ENLIST_IN_DTC                       SQL_ATTR_ENLIST_IN_DTC // Enlist in a DTC transaction
  2295. #define SQL_COPT_SS_ENLIST_IN_XA                        SQL_ATTR_ENLIST_IN_XA // Enlist in a XA transaction
  2296. #define SQL_COPT_SS_FALLBACK_CONNECT                    (SQL_COPT_SS_BASE+10) // Enables FallBack connections
  2297. #define SQL_COPT_SS_PERF_DATA                           (SQL_COPT_SS_BASE+11) // Used to access SQL Server ODBC driver performance data
  2298. #define SQL_COPT_SS_PERF_DATA_LOG                       (SQL_COPT_SS_BASE+12) // Used to set the logfile name for the Performance data
  2299. #define SQL_COPT_SS_PERF_QUERY_INTERVAL                 (SQL_COPT_SS_BASE+13) // Used to set the query logging threshold in milliseconds.
  2300. #define SQL_COPT_SS_PERF_QUERY_LOG                      (SQL_COPT_SS_BASE+14) // Used to set the logfile name for saving queryies.
  2301. #define SQL_COPT_SS_PERF_QUERY                          (SQL_COPT_SS_BASE+15) // Used to start and stop query logging.
  2302. #define SQL_COPT_SS_PERF_DATA_LOG_NOW                   (SQL_COPT_SS_BASE+16) // Used to make a statistics log entry to disk.
  2303. #define SQL_COPT_SS_QUOTED_IDENT                        (SQL_COPT_SS_BASE+17) // Enable/Disable Quoted Identifiers
  2304. #define SQL_COPT_SS_ANSI_NPW                            (SQL_COPT_SS_BASE+18) // Enable/Disable ANSI NULL, Padding and Warnings
  2305. #define SQL_COPT_SS_BCP                                 (SQL_COPT_SS_BASE+19) // Allow BCP usage on connection
  2306. #define SQL_COPT_SS_TRANSLATE                           (SQL_COPT_SS_BASE+20) // Perform code page translation
  2307. #define SQL_COPT_SS_ATTACHDBFILENAME                    (SQL_COPT_SS_BASE+21) // File name to be attached as a database
  2308. #define SQL_COPT_SS_CONCAT_NULL                         (SQL_COPT_SS_BASE+22) // Enable/Disable CONCAT_NULL_YIELDS_NULL
  2309. #define SQL_COPT_SS_ENCRYPT                             (SQL_COPT_SS_BASE+23) // Allow strong encryption for data
  2310. #define SQL_COPT_SS_MARS_ENABLED                        (SQL_COPT_SS_BASE+24) // Multiple active result set per connection
  2311. #define SQL_COPT_SS_FAILOVER_PARTNER                    (SQL_COPT_SS_BASE+25) // Failover partner server
  2312. #define SQL_COPT_SS_OLDPWD                              (SQL_COPT_SS_BASE+26) // Old Password, used when changing password during login
  2313. #define SQL_COPT_SS_TXN_ISOLATION                       (SQL_COPT_SS_BASE+27) // Used to set/get any driver-specific or ODBC-defined TXN iso level
  2314. #define SQL_COPT_SS_TRUST_SERVER_CERTIFICATE            (SQL_COPT_SS_BASE+28) // Trust server certificate
  2315. #define SQL_COPT_SS_SERVER_SPN                          (SQL_COPT_SS_BASE+29) // Server SPN
  2316. #define SQL_COPT_SS_FAILOVER_PARTNER_SPN                (SQL_COPT_SS_BASE+30) // Failover partner server SPN
  2317. #define SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD    (SQL_COPT_SS_BASE+31) // The integrated authentication method used for the connection
  2318. #define SQL_COPT_SS_MUTUALLY_AUTHENTICATED              (SQL_COPT_SS_BASE+32) // Used to decide if the connection is mutually authenticated
  2319. #define SQL_COPT_SS_MAX_USED                            SQL_COPT_SS_MUTUALLY_AUTHENTICATED
  2320. // Define old names
  2321. #define SQL_REMOTE_PWD                              SQL_COPT_SS_REMOTE_PWD
  2322. #define SQL_USE_PROCEDURE_FOR_PREPARE               SQL_COPT_SS_USE_PROC_FOR_PREP
  2323. #define SQL_INTEGRATED_SECURITY                     SQL_COPT_SS_INTEGRATED_SECURITY
  2324. #define SQL_PRESERVE_CURSORS                        SQL_COPT_SS_PRESERVE_CURSORS
  2325.  
  2326. // SQLSetStmtAttr SQL Server Native Client driver specific defines.
  2327. // Statement attributes
  2328. #define SQL_SOPT_SS_BASE                            1225
  2329. #define SQL_SOPT_SS_TEXTPTR_LOGGING                 (SQL_SOPT_SS_BASE+0) // Text pointer logging
  2330. #define SQL_SOPT_SS_CURRENT_COMMAND                 (SQL_SOPT_SS_BASE+1) // dbcurcmd SQLGetStmtOption only
  2331. #define SQL_SOPT_SS_HIDDEN_COLUMNS                  (SQL_SOPT_SS_BASE+2) // Expose FOR BROWSE hidden columns
  2332. #define SQL_SOPT_SS_NOBROWSETABLE                   (SQL_SOPT_SS_BASE+3) // Set NOBROWSETABLE option
  2333. #define SQL_SOPT_SS_REGIONALIZE                     (SQL_SOPT_SS_BASE+4) // Regionalize output character conversions
  2334. #define SQL_SOPT_SS_CURSOR_OPTIONS                  (SQL_SOPT_SS_BASE+5) // Server cursor options
  2335. #define SQL_SOPT_SS_NOCOUNT_STATUS                  (SQL_SOPT_SS_BASE+6) // Real vs. Not Real row count indicator
  2336. #define SQL_SOPT_SS_DEFER_PREPARE                   (SQL_SOPT_SS_BASE+7) // Defer prepare until necessary
  2337. #define SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT       (SQL_SOPT_SS_BASE+8) // Notification timeout
  2338. #define SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT       (SQL_SOPT_SS_BASE+9) // Notification message text
  2339. #define SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS       (SQL_SOPT_SS_BASE+10)// SQL service broker name
  2340. #define SQL_SOPT_SS_PARAM_FOCUS                     (SQL_SOPT_SS_BASE+11)// Direct subsequent calls to parameter related methods to set properties on constituent columns/parameters of container types
  2341. #define SQL_SOPT_SS_NAME_SCOPE                      (SQL_SOPT_SS_BASE+12)// Sets name scope for subsequent catalog function calls
  2342. #define SQL_SOPT_SS_MAX_USED                        SQL_SOPT_SS_NAME_SCOPE
  2343. // Define old names
  2344. #define SQL_TEXTPTR_LOGGING                         SQL_SOPT_SS_TEXTPTR_LOGGING
  2345. #define SQL_COPT_SS_BASE_EX                         1240
  2346. #define SQL_COPT_SS_BROWSE_CONNECT                  (SQL_COPT_SS_BASE_EX+1) // Browse connect mode of operation
  2347. #define SQL_COPT_SS_BROWSE_SERVER                   (SQL_COPT_SS_BASE_EX+2) // Single Server browse request.
  2348. #define SQL_COPT_SS_WARN_ON_CP_ERROR                (SQL_COPT_SS_BASE_EX+3) // Issues warning when data from the server had a loss during code page conversion.
  2349. #define SQL_COPT_SS_CONNECTION_DEAD                 (SQL_COPT_SS_BASE_EX+4) // dbdead SQLGetConnectOption only. It will try to ping the server. Expensive connection check
  2350. #define SQL_COPT_SS_BROWSE_CACHE_DATA               (SQL_COPT_SS_BASE_EX+5) // Determines if we should cache browse info. Used when returned buffer is greater then ODBC limit (32K)
  2351. #define SQL_COPT_SS_RESET_CONNECTION                (SQL_COPT_SS_BASE_EX+6) // When this option is set, we will perform connection reset on next packet
  2352. #define SQL_COPT_SS_EX_MAX_USED                     SQL_COPT_SS_RESET_CONNECTION
  2353.  
  2354. // SQLColAttributes driver specific defines.
  2355. // SQLSetDescField/SQLGetDescField driver specific defines.
  2356. // Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server Native Client driver usage.
  2357. #define SQL_CA_SS_BASE                              1200
  2358. #define SQL_CA_SS_COLUMN_SSTYPE                     (SQL_CA_SS_BASE+0)   //  dbcoltype/dbalttype
  2359. #define SQL_CA_SS_COLUMN_UTYPE                      (SQL_CA_SS_BASE+1)   //  dbcolutype/dbaltutype
  2360. #define SQL_CA_SS_NUM_ORDERS                        (SQL_CA_SS_BASE+2)   //  dbnumorders
  2361. #define SQL_CA_SS_COLUMN_ORDER                      (SQL_CA_SS_BASE+3)   //  dbordercol
  2362. #define SQL_CA_SS_COLUMN_VARYLEN                    (SQL_CA_SS_BASE+4)   //  dbvarylen
  2363. #define SQL_CA_SS_NUM_COMPUTES                      (SQL_CA_SS_BASE+5)   //  dbnumcompute
  2364. #define SQL_CA_SS_COMPUTE_ID                        (SQL_CA_SS_BASE+6)   //  dbnextrow status return
  2365. #define SQL_CA_SS_COMPUTE_BYLIST                    (SQL_CA_SS_BASE+7)   //  dbbylist
  2366. #define SQL_CA_SS_COLUMN_ID                         (SQL_CA_SS_BASE+8)   //  dbaltcolid
  2367. #define SQL_CA_SS_COLUMN_OP                         (SQL_CA_SS_BASE+9)   //  dbaltop
  2368. #define SQL_CA_SS_COLUMN_SIZE                       (SQL_CA_SS_BASE+10)  //  dbcollen
  2369. #define SQL_CA_SS_COLUMN_HIDDEN                     (SQL_CA_SS_BASE+11)  //  Column is hidden (FOR BROWSE)
  2370. #define SQL_CA_SS_COLUMN_KEY                        (SQL_CA_SS_BASE+12)  //  Column is key column (FOR BROWSE)
  2371. //#define SQL_DESC_BASE_COLUMN_NAME_OLD             (SQL_CA_SS_BASE+13)  //  This is defined at another location.
  2372. #define SQL_CA_SS_COLUMN_COLLATION                  (SQL_CA_SS_BASE+14)  //  Column collation (only for chars)
  2373. #define SQL_CA_SS_VARIANT_TYPE                      (SQL_CA_SS_BASE+15)
  2374. #define SQL_CA_SS_VARIANT_SQL_TYPE                  (SQL_CA_SS_BASE+16)
  2375. #define SQL_CA_SS_VARIANT_SERVER_TYPE               (SQL_CA_SS_BASE+17)
  2376.  
  2377. // XML, CLR UDT, and table valued parameter related metadata
  2378. #define SQL_CA_SS_UDT_CATALOG_NAME                  (SQL_CA_SS_BASE+18) //  UDT catalog name
  2379. #define SQL_CA_SS_UDT_SCHEMA_NAME                   (SQL_CA_SS_BASE+19) //  UDT schema name
  2380. #define SQL_CA_SS_UDT_TYPE_NAME                     (SQL_CA_SS_BASE+20) //  UDT type name
  2381. #define SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME            (SQL_CA_SS_BASE+21) //  Qualified name of the assembly containing the UDT class
  2382. #define SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME (SQL_CA_SS_BASE+22) //  Name of the catalog that contains XML Schema collection
  2383. #define SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME  (SQL_CA_SS_BASE+23) //  Name of the schema that contains XML Schema collection
  2384. #define SQL_CA_SS_XML_SCHEMACOLLECTION_NAME         (SQL_CA_SS_BASE+24) //  Name of the XML Schema collection
  2385. #define SQL_CA_SS_CATALOG_NAME                      (SQL_CA_SS_BASE+25) //  Catalog name
  2386. #define SQL_CA_SS_SCHEMA_NAME                       (SQL_CA_SS_BASE+26) //  Schema name
  2387. #define SQL_CA_SS_TYPE_NAME                         (SQL_CA_SS_BASE+27) //  Type name
  2388.  
  2389. // table valued parameter related metadata
  2390. #define SQL_CA_SS_COLUMN_COMPUTED                   (SQL_CA_SS_BASE+29) //  column is computed
  2391. #define SQL_CA_SS_COLUMN_IN_UNIQUE_KEY              (SQL_CA_SS_BASE+30) //  column is part of a unique key
  2392. #define SQL_CA_SS_COLUMN_SORT_ORDER                 (SQL_CA_SS_BASE+31) //  column sort order
  2393. #define SQL_CA_SS_COLUMN_SORT_ORDINAL               (SQL_CA_SS_BASE+32) //  column sort ordinal
  2394. #define SQL_CA_SS_COLUMN_HAS_DEFAULT_VALUE          (SQL_CA_SS_BASE+33) //  column has default value for all rows of the table valued parameter
  2395.  
  2396. // sparse column related metadata
  2397. #define SQL_CA_SS_IS_COLUMN_SET                     (SQL_CA_SS_BASE+34) //  column is a column-set column for sparse columns
  2398.  
  2399. // Legacy datetime related metadata
  2400. #define SQL_CA_SS_SERVER_TYPE                       (SQL_CA_SS_BASE+35) //  column type to send on the wire for datetime types
  2401.  
  2402. #define SQL_CA_SS_MAX_USED                          (SQL_CA_SS_BASE+36)
  2403.  
  2404. // Defines returned by SQL_ATTR_CURSOR_TYPE/SQL_CURSOR_TYPE
  2405. #define SQL_CURSOR_FAST_FORWARD_ONLY        8            //  Only returned by SQLGetStmtAttr/Option
  2406. // Defines for use with SQL_COPT_SS_USE_PROC_FOR_PREP
  2407. #define SQL_UP_OFF                          0L           //  Procedures won't be used for prepare
  2408. #define SQL_UP_ON                           1L           //  Procedures will be used for prepare
  2409. #define SQL_UP_ON_DROP                      2L           //  Temp procedures will be explicitly dropped
  2410. #define SQL_UP_DEFAULT                      SQL_UP_ON
  2411. // Defines for use with SQL_COPT_SS_INTEGRATED_SECURITY - Pre-Connect Option only
  2412. #define SQL_IS_OFF                          0L           //  Integrated security isn't used
  2413. #define SQL_IS_ON                           1L           //  Integrated security is used
  2414. #define SQL_IS_DEFAULT                      SQL_IS_OFF
  2415. // Defines for use with SQL_COPT_SS_PRESERVE_CURSORS
  2416. #define SQL_PC_OFF                          0L           //  Cursors are closed on SQLTransact
  2417. #define SQL_PC_ON                           1L           //  Cursors remain open on SQLTransact
  2418. #define SQL_PC_DEFAULT                      SQL_PC_OFF
  2419. // Defines for use with SQL_COPT_SS_USER_DATA
  2420. #define SQL_UD_NOTSET                       NULL         //  No user data pointer set
  2421. // Defines for use with SQL_COPT_SS_TRANSLATE
  2422. #define SQL_XL_OFF                          0L           //  Code page translation is not performed
  2423. #define SQL_XL_ON                           1L           //  Code page translation is performed
  2424. #define SQL_XL_DEFAULT                      SQL_XL_ON
  2425. // Defines for use with SQL_COPT_SS_FALLBACK_CONNECT - Pre-Connect Option only
  2426. #define SQL_FB_OFF                          0L           //  FallBack connections are disabled
  2427. #define SQL_FB_ON                           1L           //  FallBack connections are enabled
  2428. #define SQL_FB_DEFAULT                      SQL_FB_OFF
  2429. // Defines for use with SQL_COPT_SS_BCP - Pre-Connect Option only
  2430. #define SQL_BCP_OFF                         0L           //  BCP is not allowed on connection
  2431. #define SQL_BCP_ON                          1L           //  BCP is allowed on connection
  2432. #define SQL_BCP_DEFAULT                     SQL_BCP_OFF
  2433. // Defines for use with SQL_COPT_SS_QUOTED_IDENT
  2434. #define SQL_QI_OFF                          0L           //  Quoted identifiers are enable
  2435. #define SQL_QI_ON                           1L           //  Quoted identifiers are disabled
  2436. #define SQL_QI_DEFAULT                      SQL_QI_ON
  2437. // Defines for use with SQL_COPT_SS_ANSI_NPW - Pre-Connect Option only
  2438. #define SQL_AD_OFF                          0L           //  ANSI NULLs, Padding and Warnings are enabled
  2439. #define SQL_AD_ON                           1L           //  ANSI NULLs, Padding and Warnings are disabled
  2440. #define SQL_AD_DEFAULT                      SQL_AD_ON
  2441. // Defines for use with SQL_COPT_SS_CONCAT_NULL - Pre-Connect Option only
  2442. #define SQL_CN_OFF                          0L           //  CONCAT_NULL_YIELDS_NULL is off
  2443. #define SQL_CN_ON                           1L           //  CONCAT_NULL_YIELDS_NULL is on
  2444. #define SQL_CN_DEFAULT                      SQL_CN_ON
  2445. // Defines for use with SQL_SOPT_SS_TEXTPTR_LOGGING
  2446. #define SQL_TL_OFF                          0L           //  No logging on text pointer ops
  2447. #define SQL_TL_ON                           1L           //  Logging occurs on text pointer ops
  2448. #define SQL_TL_DEFAULT                      SQL_TL_ON
  2449. // Defines for use with SQL_SOPT_SS_HIDDEN_COLUMNS
  2450. #define SQL_HC_OFF                          0L           //  FOR BROWSE columns are hidden
  2451. #define SQL_HC_ON                           1L           //  FOR BROWSE columns are exposed
  2452. #define SQL_HC_DEFAULT                      SQL_HC_OFF
  2453. // Defines for use with SQL_SOPT_SS_NOBROWSETABLE
  2454. #define SQL_NB_OFF                          0L           //  NO_BROWSETABLE is off
  2455. #define SQL_NB_ON                           1L           //  NO_BROWSETABLE is on
  2456. #define SQL_NB_DEFAULT                      SQL_NB_OFF
  2457. // Defines for use with SQL_SOPT_SS_REGIONALIZE
  2458. #define SQL_RE_OFF                          0L           //  No regionalization occurs on output character conversions
  2459. #define SQL_RE_ON                           1L           //  Regionalization occurs on output character conversions
  2460. #define SQL_RE_DEFAULT                      SQL_RE_OFF
  2461. // Defines for use with SQL_SOPT_SS_CURSOR_OPTIONS
  2462. #define SQL_CO_OFF                          0L           //  Clear all cursor options
  2463. #define SQL_CO_FFO                          1L           //  Fast-forward cursor will be used
  2464. #define SQL_CO_AF                           2L           //  Autofetch on cursor open
  2465. #define SQL_CO_FFO_AF                       (SQL_CO_FFO|SQL_CO_AF)  //  Fast-forward cursor with autofetch
  2466. #define SQL_CO_FIREHOSE_AF                  4L           //  Auto fetch on fire-hose cursors
  2467. #define SQL_CO_DEFAULT                      SQL_CO_OFF
  2468. //SQL_SOPT_SS_NOCOUNT_STATUS 
  2469. #define SQL_NC_OFF                          0L
  2470. #define SQL_NC_ON                           1L
  2471. //SQL_SOPT_SS_DEFER_PREPARE 
  2472. #define SQL_DP_OFF                          0L
  2473. #define SQL_DP_ON                           1L
  2474. //SQL_SOPT_SS_NAME_SCOPE
  2475. #define SQL_SS_NAME_SCOPE_TABLE             0L
  2476. #define SQL_SS_NAME_SCOPE_TABLE_TYPE        1L
  2477. #define SQL_SS_NAME_SCOPE_EXTENDED          2L
  2478. #define SQL_SS_NAME_SCOPE_SPARSE_COLUMN_SET 3L
  2479. #define SQL_SS_NAME_SCOPE_DEFAULT           SQL_SS_NAME_SCOPE_TABLE
  2480. //SQL_COPT_SS_ENCRYPT 
  2481. #define SQL_EN_OFF                          0L
  2482. #define SQL_EN_ON                           1L
  2483. //SQL_COPT_SS_TRUST_SERVER_CERTIFICATE
  2484. #define SQL_TRUST_SERVER_CERTIFICATE_NO     0L
  2485. #define SQL_TRUST_SERVER_CERTIFICATE_YES    1L
  2486. //SQL_COPT_SS_BROWSE_CONNECT 
  2487. #define SQL_MORE_INFO_NO                    0L
  2488. #define SQL_MORE_INFO_YES                   1L
  2489. //SQL_COPT_SS_BROWSE_CACHE_DATA 
  2490. #define SQL_CACHE_DATA_NO                   0L
  2491. #define SQL_CACHE_DATA_YES                  1L
  2492. //SQL_COPT_SS_RESET_CONNECTION 
  2493. #define SQL_RESET_YES                       1L
  2494. //SQL_COPT_SS_WARN_ON_CP_ERROR 
  2495. #define SQL_WARN_NO                         0L
  2496. #define SQL_WARN_YES                        1L
  2497. //SQL_COPT_SS_MARS_ENABLED 
  2498. #define SQL_MARS_ENABLED_NO                 0L
  2499. #define SQL_MARS_ENABLED_YES                1L
  2500. /* SQL_TXN_ISOLATION_OPTION bitmasks */
  2501. #define SQL_TXN_SS_SNAPSHOT                 0x00000020L
  2502.  
  2503. // The following are defines for SQL_CA_SS_COLUMN_SORT_ORDER
  2504. #define SQL_SS_ORDER_UNSPECIFIED            0L
  2505. #define SQL_SS_DESCENDING_ORDER             1L
  2506. #define SQL_SS_ASCENDING_ORDER              2L
  2507. #define SQL_SS_ORDER_DEFAULT                SQL_SS_ORDER_UNSPECIFIED
  2508.  
  2509. // Driver specific SQL data type defines.
  2510. // Microsoft has -150 thru -199 reserved for Microsoft SQL Server Native Client driver usage.
  2511. #define SQL_SS_VARIANT                      (-150)
  2512. #define SQL_SS_UDT                          (-151)
  2513. #define SQL_SS_XML                          (-152)
  2514. #define SQL_SS_TABLE                        (-153)
  2515. #define SQL_SS_TIME2                        (-154)
  2516. #define SQL_SS_TIMESTAMPOFFSET              (-155)
  2517.  
  2518. // Local types to be used with SQL_CA_SS_SERVER_TYPE
  2519. #define SQL_SS_TYPE_DEFAULT                         0L
  2520. #define SQL_SS_TYPE_SMALLDATETIME                   1L
  2521. #define SQL_SS_TYPE_DATETIME                        2L
  2522.  
  2523. #ifndef SQLNCLI_NO_BCP
  2524. // Define the symbol SQLNCLI_NO_BCP if you are not using BCP in your application
  2525. // and you want to exclude the BCP-related definitions in this header file.
  2526.  
  2527. // SQL Server Data Type defines.
  2528. // New types for SQL 6.0 and later servers
  2529. #define SQLTEXT                             0x23
  2530. #define SQLVARBINARY                        0x25
  2531. #define SQLINTN                             0x26
  2532. #define SQLVARCHAR                          0x27
  2533. #define SQLBINARY                           0x2d
  2534. #define SQLIMAGE                            0x22
  2535. #define SQLCHARACTER                        0x2f
  2536. #define SQLINT1                             0x30
  2537. #define SQLBIT                              0x32
  2538. #define SQLINT2                             0x34
  2539. #define SQLINT4                             0x38
  2540. #define SQLMONEY                            0x3c
  2541. #define SQLDATETIME                         0x3d
  2542. #define SQLFLT8                             0x3e
  2543. #define SQLFLTN                             0x6d
  2544. #define SQLMONEYN                           0x6e
  2545. #define SQLDATETIMN                         0x6f
  2546. #define SQLFLT4                             0x3b
  2547. #define SQLMONEY4                           0x7a
  2548. #define SQLDATETIM4                         0x3a
  2549. // New types for SQL 6.0 and later servers
  2550. #define SQLDECIMAL                          0x6a
  2551. #define SQLNUMERIC                          0x6c
  2552. // New types for SQL 7.0 and later servers
  2553. #define SQLUNIQUEID                         0x24
  2554. #define SQLBIGCHAR                          0xaf
  2555. #define SQLBIGVARCHAR                       0xa7
  2556. #define SQLBIGBINARY                        0xad
  2557. #define SQLBIGVARBINARY                     0xa5
  2558. #define SQLBITN                             0x68
  2559. #define SQLNCHAR                            0xef
  2560. #define SQLNVARCHAR                         0xe7
  2561. #define SQLNTEXT                            0x63
  2562. // New types for SQL 2000 and later servers
  2563. #define SQLINT8                             0x7f
  2564. #define SQLVARIANT                          0x62
  2565. // New types for SQL 2005 and later servers
  2566. #define SQLUDT                              0xf0
  2567. #define SQLXML                              0xf1
  2568. // New types for SQL 2008 and later servers
  2569. #define SQLTABLE                            0xf3
  2570. #define SQLDATEN                            0x28
  2571. #define SQLTIMEN                            0x29
  2572. #define SQLDATETIME2N                       0x2a
  2573. #define SQLDATETIMEOFFSETN                  0x2b
  2574. // Define old names
  2575. #define SQLDECIMALN                         0x6a
  2576. #define SQLNUMERICN                         0x6c
  2577. #endif // SQLNCLI_NO_BCP
  2578.  
  2579. // SQL_SS_LENGTH_UNLIMITED is used to describe the max length of
  2580. // VARCHAR(max), VARBINARY(max), NVARCHAR(max), and XML columns
  2581. #define SQL_SS_LENGTH_UNLIMITED             0
  2582.  
  2583. // User Data Type definitions.
  2584. // Returned by SQLColAttributes/SQL_CA_SS_COLUMN_UTYPE.
  2585. #define SQLudtBINARY                        3
  2586. #define SQLudtBIT                           16
  2587. #define SQLudtBITN                          0
  2588. #define SQLudtCHAR                          1
  2589. #define SQLudtDATETIM4                      22
  2590. #define SQLudtDATETIME                      12
  2591. #define SQLudtDATETIMN                      15
  2592. #define SQLudtDECML                         24
  2593. #define SQLudtDECMLN                        26
  2594. #define SQLudtFLT4                          23
  2595. #define SQLudtFLT8                          8
  2596. #define SQLudtFLTN                          14
  2597. #define SQLudtIMAGE                         20
  2598. #define SQLudtINT1                          5
  2599. #define SQLudtINT2                          6
  2600. #define SQLudtINT4                          7
  2601. #define SQLudtINTN                          13
  2602. #define SQLudtMONEY                         11
  2603. #define SQLudtMONEY4                        21
  2604. #define SQLudtMONEYN                        17
  2605. #define SQLudtNUM                           10
  2606. #define SQLudtNUMN                          25
  2607. #define SQLudtSYSNAME                       18
  2608. #define SQLudtTEXT                          19
  2609. #define SQLudtTIMESTAMP                     80
  2610. #define SQLudtUNIQUEIDENTIFIER              0
  2611. #define SQLudtVARBINARY                     4
  2612. #define SQLudtVARCHAR                       2
  2613. #define MIN_USER_DATATYPE                   256
  2614. // Aggregate operator types.
  2615. // Returned by SQLColAttributes/SQL_CA_SS_COLUMN_OP.
  2616. #define SQLAOPSTDEV                         0x30    // Standard deviation
  2617. #define SQLAOPSTDEVP                        0x31    // Standard deviation population
  2618. #define SQLAOPVAR                           0x32    // Variance
  2619. #define SQLAOPVARP                          0x33    // Variance population
  2620. #define SQLAOPCNT                           0x4b    // Count
  2621. #define SQLAOPSUM                           0x4d    // Sum
  2622. #define SQLAOPAVG                           0x4f    // Average
  2623. #define SQLAOPMIN                           0x51    // Min
  2624. #define SQLAOPMAX                           0x52    // Max
  2625. #define SQLAOPANY                           0x53    // Any
  2626. #define SQLAOPNOOP                          0x56    // None
  2627. // SQLGetInfo driver specific defines.
  2628. // Microsoft has 1151 thru 1200 reserved for Microsoft SQL Server Native Client driver usage.
  2629. #define SQL_INFO_SS_FIRST                   1199
  2630. #define SQL_INFO_SS_NETLIB_NAMEW            (SQL_INFO_SS_FIRST+0) //  dbprocinfo
  2631. #define SQL_INFO_SS_NETLIB_NAMEA            (SQL_INFO_SS_FIRST+1) //  dbprocinfo
  2632. #define SQL_INFO_SS_MAX_USED                SQL_INFO_SS_NETLIB_NAMEA
  2633. #ifdef UNICODE
  2634. #define SQL_INFO_SS_NETLIB_NAME             SQL_INFO_SS_NETLIB_NAMEW
  2635. #else
  2636. #define SQL_INFO_SS_NETLIB_NAME             SQL_INFO_SS_NETLIB_NAMEA
  2637. #endif
  2638. // SQLGetDiagField driver specific defines.
  2639. // Microsoft has -1150 thru -1199 reserved for Microsoft SQL Server Native Client driver usage.
  2640. #define SQL_DIAG_SS_BASE                    (-1150)
  2641. #define SQL_DIAG_SS_MSGSTATE                (SQL_DIAG_SS_BASE)
  2642. #define SQL_DIAG_SS_SEVERITY                (SQL_DIAG_SS_BASE-1)
  2643. #define SQL_DIAG_SS_SRVNAME                 (SQL_DIAG_SS_BASE-2)
  2644. #define SQL_DIAG_SS_PROCNAME                (SQL_DIAG_SS_BASE-3)
  2645. #define SQL_DIAG_SS_LINE                    (SQL_DIAG_SS_BASE-4)
  2646. // SQLGetDiagField/SQL_DIAG_DYNAMIC_FUNCTION_CODE driver specific defines.
  2647. // Microsoft has -200 thru -299 reserved for Microsoft SQL Server Native Client driver usage.
  2648. #define SQL_DIAG_DFC_SS_BASE                (-200)
  2649. #define SQL_DIAG_DFC_SS_ALTER_DATABASE      (SQL_DIAG_DFC_SS_BASE-0)
  2650. #define SQL_DIAG_DFC_SS_CHECKPOINT          (SQL_DIAG_DFC_SS_BASE-1)
  2651. #define SQL_DIAG_DFC_SS_CONDITION           (SQL_DIAG_DFC_SS_BASE-2)
  2652. #define SQL_DIAG_DFC_SS_CREATE_DATABASE     (SQL_DIAG_DFC_SS_BASE-3)
  2653. #define SQL_DIAG_DFC_SS_CREATE_DEFAULT      (SQL_DIAG_DFC_SS_BASE-4)
  2654. #define SQL_DIAG_DFC_SS_CREATE_PROCEDURE    (SQL_DIAG_DFC_SS_BASE-5)
  2655. #define SQL_DIAG_DFC_SS_CREATE_RULE         (SQL_DIAG_DFC_SS_BASE-6)
  2656. #define SQL_DIAG_DFC_SS_CREATE_TRIGGER      (SQL_DIAG_DFC_SS_BASE-7)
  2657. #define SQL_DIAG_DFC_SS_CURSOR_DECLARE      (SQL_DIAG_DFC_SS_BASE-8)
  2658. #define SQL_DIAG_DFC_SS_CURSOR_OPEN         (SQL_DIAG_DFC_SS_BASE-9)
  2659. #define SQL_DIAG_DFC_SS_CURSOR_FETCH        (SQL_DIAG_DFC_SS_BASE-10)
  2660. #define SQL_DIAG_DFC_SS_CURSOR_CLOSE        (SQL_DIAG_DFC_SS_BASE-11)
  2661. #define SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR   (SQL_DIAG_DFC_SS_BASE-12)
  2662. #define SQL_DIAG_DFC_SS_DBCC                (SQL_DIAG_DFC_SS_BASE-13)
  2663. #define SQL_DIAG_DFC_SS_DISK                (SQL_DIAG_DFC_SS_BASE-14)
  2664. #define SQL_DIAG_DFC_SS_DROP_DATABASE       (SQL_DIAG_DFC_SS_BASE-15)
  2665. #define SQL_DIAG_DFC_SS_DROP_DEFAULT        (SQL_DIAG_DFC_SS_BASE-16)
  2666. #define SQL_DIAG_DFC_SS_DROP_PROCEDURE      (SQL_DIAG_DFC_SS_BASE-17)
  2667. #define SQL_DIAG_DFC_SS_DROP_RULE           (SQL_DIAG_DFC_SS_BASE-18)
  2668. #define SQL_DIAG_DFC_SS_DROP_TRIGGER        (SQL_DIAG_DFC_SS_BASE-19)
  2669. #define SQL_DIAG_DFC_SS_DUMP_DATABASE       (SQL_DIAG_DFC_SS_BASE-20)
  2670. #define SQL_DIAG_DFC_SS_BACKUP_DATABASE     (SQL_DIAG_DFC_SS_BASE-20)
  2671. #define SQL_DIAG_DFC_SS_DUMP_TABLE          (SQL_DIAG_DFC_SS_BASE-21)
  2672. #define SQL_DIAG_DFC_SS_DUMP_TRANSACTION    (SQL_DIAG_DFC_SS_BASE-22)
  2673. #define SQL_DIAG_DFC_SS_BACKUP_TRANSACTION  (SQL_DIAG_DFC_SS_BASE-22)
  2674. #define SQL_DIAG_DFC_SS_GOTO                (SQL_DIAG_DFC_SS_BASE-23)
  2675. #define SQL_DIAG_DFC_SS_INSERT_BULK         (SQL_DIAG_DFC_SS_BASE-24)
  2676. #define SQL_DIAG_DFC_SS_KILL                (SQL_DIAG_DFC_SS_BASE-25)
  2677. #define SQL_DIAG_DFC_SS_LOAD_DATABASE       (SQL_DIAG_DFC_SS_BASE-26)
  2678. #define SQL_DIAG_DFC_SS_RESTORE_DATABASE    (SQL_DIAG_DFC_SS_BASE-26)
  2679. #define SQL_DIAG_DFC_SS_LOAD_HEADERONLY     (SQL_DIAG_DFC_SS_BASE-27)
  2680. #define SQL_DIAG_DFC_SS_RESTORE_HEADERONLY  (SQL_DIAG_DFC_SS_BASE-27)
  2681. #define SQL_DIAG_DFC_SS_LOAD_TABLE          (SQL_DIAG_DFC_SS_BASE-28)
  2682. #define SQL_DIAG_DFC_SS_LOAD_TRANSACTION    (SQL_DIAG_DFC_SS_BASE-29)
  2683. #define SQL_DIAG_DFC_SS_RESTORE_TRANSACTION (SQL_DIAG_DFC_SS_BASE-29)
  2684. #define SQL_DIAG_DFC_SS_PRINT               (SQL_DIAG_DFC_SS_BASE-30)
  2685. #define SQL_DIAG_DFC_SS_RAISERROR           (SQL_DIAG_DFC_SS_BASE-31)
  2686. #define SQL_DIAG_DFC_SS_READTEXT            (SQL_DIAG_DFC_SS_BASE-32)
  2687. #define SQL_DIAG_DFC_SS_RECONFIGURE         (SQL_DIAG_DFC_SS_BASE-33)
  2688. #define SQL_DIAG_DFC_SS_RETURN              (SQL_DIAG_DFC_SS_BASE-34)
  2689. #define SQL_DIAG_DFC_SS_SELECT_INTO         (SQL_DIAG_DFC_SS_BASE-35)
  2690. #define SQL_DIAG_DFC_SS_SET                 (SQL_DIAG_DFC_SS_BASE-36)
  2691. #define SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT (SQL_DIAG_DFC_SS_BASE-37)
  2692. #define SQL_DIAG_DFC_SS_SET_ROW_COUNT       (SQL_DIAG_DFC_SS_BASE-38)
  2693. #define SQL_DIAG_DFC_SS_SET_STATISTICS      (SQL_DIAG_DFC_SS_BASE-39)
  2694. #define SQL_DIAG_DFC_SS_SET_TEXTSIZE        (SQL_DIAG_DFC_SS_BASE-40)
  2695. #define SQL_DIAG_DFC_SS_SETUSER             (SQL_DIAG_DFC_SS_BASE-41)
  2696. #define SQL_DIAG_DFC_SS_SHUTDOWN            (SQL_DIAG_DFC_SS_BASE-42)
  2697. #define SQL_DIAG_DFC_SS_TRANS_BEGIN         (SQL_DIAG_DFC_SS_BASE-43)
  2698. #define SQL_DIAG_DFC_SS_TRANS_COMMIT        (SQL_DIAG_DFC_SS_BASE-44)
  2699. #define SQL_DIAG_DFC_SS_TRANS_PREPARE       (SQL_DIAG_DFC_SS_BASE-45)
  2700. #define SQL_DIAG_DFC_SS_TRANS_ROLLBACK      (SQL_DIAG_DFC_SS_BASE-46)
  2701. #define SQL_DIAG_DFC_SS_TRANS_SAVE          (SQL_DIAG_DFC_SS_BASE-47)
  2702. #define SQL_DIAG_DFC_SS_TRUNCATE_TABLE      (SQL_DIAG_DFC_SS_BASE-48)
  2703. #define SQL_DIAG_DFC_SS_UPDATE_STATISTICS   (SQL_DIAG_DFC_SS_BASE-49)
  2704. #define SQL_DIAG_DFC_SS_UPDATETEXT          (SQL_DIAG_DFC_SS_BASE-50)
  2705. #define SQL_DIAG_DFC_SS_USE                 (SQL_DIAG_DFC_SS_BASE-51)
  2706. #define SQL_DIAG_DFC_SS_WAITFOR             (SQL_DIAG_DFC_SS_BASE-52)
  2707. #define SQL_DIAG_DFC_SS_WRITETEXT           (SQL_DIAG_DFC_SS_BASE-53)
  2708. #define SQL_DIAG_DFC_SS_DENY                (SQL_DIAG_DFC_SS_BASE-54)
  2709. #define SQL_DIAG_DFC_SS_SET_XCTLVL          (SQL_DIAG_DFC_SS_BASE-55)
  2710. #define SQL_DIAG_DFC_SS_MERGE               (SQL_DIAG_DFC_SS_BASE-56)
  2711.  
  2712. // Severity codes for SQL_DIAG_SS_SEVERITY
  2713. #define EX_ANY          0
  2714. #define EX_INFO         10
  2715. #define EX_MAXISEVERITY EX_INFO
  2716. #define EX_MISSING      11
  2717. #define EX_TYPE         12
  2718. #define EX_DEADLOCK     13
  2719. #define EX_PERMIT       14
  2720. #define EX_SYNTAX       15
  2721. #define EX_USER         16
  2722. #define EX_RESOURCE     17
  2723. #define EX_INTOK        18
  2724. #define MAXUSEVERITY    EX_INTOK
  2725. #define EX_LIMIT        19
  2726. #define EX_CMDFATAL     20
  2727. #define MINFATALERR     EX_CMDFATAL
  2728. #define EX_DBFATAL      21
  2729. #define EX_TABCORRUPT   22
  2730. #define EX_DBCORRUPT    23
  2731. #define EX_HARDWARE     24
  2732. #define EX_CONTROL      25
  2733. // Internal server datatypes - used when binding to SQL_C_BINARY
  2734. #ifndef MAXNUMERICLEN   // Resolve ODS/DBLib conflicts
  2735. // DB-Library datatypes
  2736. #define DBMAXCHAR       (8000+1)                    // Max length of DBVARBINARY and DBVARCHAR, etc. +1 for zero byte
  2737. #define MAXNAME         (SQL_MAX_SQLSERVERNAME+1)   // Max server identifier length including zero byte
  2738. #ifdef UNICODE
  2739. typedef wchar_t  DBCHAR;
  2740. #else
  2741. typedef char DBCHAR;
  2742.  
  2743. #endif
  2744. typedef short SQLSMALLINT;
  2745.  
  2746. typedef unsigned short SQLUSMALLINT;
  2747.  
  2748. typedef long SQLINTEGER;
  2749.  
  2750. typedef unsigned long SQLUINTEGER;
  2751.  
  2752. typedef unsigned char DBBINARY;
  2753.  
  2754. typedef unsigned char DBTINYINT;
  2755.  
  2756. typedef short DBSMALLINT;
  2757.  
  2758. typedef unsigned short DBUSMALLINT;
  2759.  
  2760. typedef double DBFLT8;
  2761.  
  2762. typedef unsigned char DBBIT;
  2763.  
  2764. typedef unsigned char DBBOOL;
  2765.  
  2766. typedef float DBFLT4;
  2767.  
  2768. typedef DBFLT4 DBREAL;
  2769.  
  2770. typedef UINT DBUBOOL;
  2771.  
  2772. typedef struct dbmoney
  2773.     {
  2774.     LONG mnyhigh;
  2775.     ULONG mnylow;
  2776.     }     DBMONEY;
  2777.  
  2778. typedef struct dbdatetime
  2779.     {
  2780.     LONG dtdays;
  2781.     ULONG dttime;
  2782.     }     DBDATETIME;
  2783.  
  2784. typedef struct dbdatetime4
  2785.     {
  2786.     USHORT numdays;
  2787.     USHORT nummins;
  2788.     }     DBDATETIM4;
  2789.  
  2790. typedef LONG DBMONEY4;
  2791.  
  2792. #include <pshpack8.h>    // 8-byte structure packing
  2793.  
  2794. // New Date Time Structures
  2795. // New Structure for TIME2
  2796. typedef struct tagSS_TIME2_STRUCT
  2797.     {
  2798.     SQLUSMALLINT hour;
  2799.     SQLUSMALLINT minute;
  2800.     SQLUSMALLINT second;
  2801.     SQLUINTEGER fraction;
  2802.     }     SQL_SS_TIME2_STRUCT;
  2803.  
  2804. // New Structure for TIMESTAMPOFFSET
  2805. typedef struct tagSS_TIMESTAMPOFFSET_STRUCT
  2806.     {
  2807.     SQLSMALLINT year;
  2808.     SQLUSMALLINT month;
  2809.     SQLUSMALLINT day;
  2810.     SQLUSMALLINT hour;
  2811.     SQLUSMALLINT minute;
  2812.     SQLUSMALLINT second;
  2813.     SQLUINTEGER fraction;
  2814.     SQLSMALLINT timezone_hour;
  2815.     SQLSMALLINT timezone_minute;
  2816.     }     SQL_SS_TIMESTAMPOFFSET_STRUCT;
  2817.  
  2818. #include <poppack.h>     // restore original structure packing
  2819.  
  2820. // Money value *10,000
  2821. #define DBNUM_PREC_TYPE BYTE
  2822. #define DBNUM_SCALE_TYPE BYTE
  2823. #define DBNUM_VAL_TYPE BYTE
  2824.  
  2825. #if (ODBCVER < 0x0300)
  2826. #define MAXNUMERICLEN 16
  2827. typedef struct dbnumeric         // Internal representation of NUMERIC data type
  2828. {
  2829.     DBNUM_PREC_TYPE precision;   // Precision
  2830.     DBNUM_SCALE_TYPE scale;      // Scale
  2831.     BYTE sign;                   // Sign (1 if positive, 0 if negative)
  2832.     DBNUM_VAL_TYPE val[MAXNUMERICLEN];// Value
  2833. } DBNUMERIC;
  2834. typedef DBNUMERIC DBDECIMAL;// Internal representation of DECIMAL data type
  2835. #else //  Use ODBC 3.0 definitions since same as DBLib
  2836. #define MAXNUMERICLEN SQL_MAX_NUMERIC_LEN
  2837. typedef SQL_NUMERIC_STRUCT DBNUMERIC;
  2838. typedef SQL_NUMERIC_STRUCT DBDECIMAL;
  2839. #endif // ODCBVER
  2840. #endif // MAXNUMERICLEN
  2841.  
  2842. #ifndef INT
  2843. typedef int     INT;
  2844. typedef long    DBINT;
  2845. typedef DBINT * LPDBINT;
  2846. #ifndef _LPCBYTE_DEFINED
  2847. #define _LPCBYTE_DEFINED
  2848. typedef BYTE const* LPCBYTE;
  2849. #endif //_LPCBYTE_DEFINED
  2850. #endif // INT
  2851. /************************************************************************** 
  2852. This struct is a global used for gathering statistical data on the driver.
  2853. Access to this structure is controlled via the pStatCrit;
  2854. ***************************************************************************/ 
  2855. typedef struct sqlperf
  2856. {
  2857.     // Application Profile Statistics
  2858.     DWORD TimerResolution;
  2859.     DWORD SQLidu;
  2860.     DWORD SQLiduRows;
  2861.     DWORD SQLSelects;
  2862.     DWORD SQLSelectRows;
  2863.     DWORD Transactions;
  2864.     DWORD SQLPrepares;
  2865.     DWORD ExecDirects;
  2866.     DWORD SQLExecutes;
  2867.     DWORD CursorOpens;
  2868.     DWORD CursorSize;
  2869.     DWORD CursorUsed;
  2870.     LDOUBLE PercentCursorUsed;
  2871.     LDOUBLE AvgFetchTime;
  2872.     LDOUBLE AvgCursorSize;
  2873.     LDOUBLE AvgCursorUsed;
  2874.     DWORD SQLFetchTime;
  2875.     DWORD SQLFetchCount;
  2876.     DWORD CurrentStmtCount;
  2877.     DWORD MaxOpenStmt;
  2878.     DWORD SumOpenStmt;
  2879.     // Connection Statistics
  2880.     DWORD CurrentConnectionCount;
  2881.     DWORD MaxConnectionsOpened;
  2882.     DWORD SumConnectionsOpened;
  2883.     DWORD SumConnectiontime;
  2884.     LDOUBLE AvgTimeOpened;
  2885.     // Network Statistics
  2886.     DWORD ServerRndTrips;
  2887.     DWORD BuffersSent;
  2888.     DWORD BuffersRec;
  2889.     DWORD BytesSent;
  2890.     DWORD BytesRec;
  2891.     // Time Statistics;
  2892.     DWORD msExecutionTime;
  2893.     DWORD msNetWorkServerTime;
  2894. } SQLPERF;
  2895. // The following are options for SQL_COPT_SS_PERF_DATA and SQL_COPT_SS_PERF_QUERY
  2896. #define SQL_PERF_START          1           // Starts the driver sampling performance data.
  2897. #define SQL_PERF_STOP           2           // Stops the counters from sampling performance data.
  2898. // The following are defines for SQL_COPT_SS_PERF_DATA_LOG
  2899. #define SQL_SS_DL_DEFAULT       TEXT("STATS.LOG")
  2900. // The following are defines for SQL_COPT_SS_PERF_QUERY_LOG
  2901. #define SQL_SS_QL_DEFAULT       TEXT("QUERY.LOG")
  2902. // The following are defines for SQL_COPT_SS_PERF_QUERY_INTERVAL
  2903. #define SQL_SS_QI_DEFAULT       30000   //  30,000 milliseconds
  2904.  
  2905. #ifndef SQLNCLI_NO_BCP
  2906. // Define the symbol SQLNCLI_NO_BCP if you are not using BCP in your application
  2907. // and you want to exclude the BCP-related definitions in this header file.
  2908.  
  2909. // ODBC BCP prototypes and defines
  2910. // Return codes
  2911. #define SUCCEED                 1
  2912. #define FAIL                    0
  2913. #define SUCCEED_ABORT           2
  2914. #define SUCCEED_ASYNC           3
  2915. // Transfer directions
  2916. #define DB_IN                   1   // Transfer from client to server
  2917. #define DB_OUT                  2   // Transfer from server to client
  2918. // bcp_control option
  2919. #define BCPMAXERRS              1   // Sets max errors allowed
  2920. #define BCPFIRST                2   // Sets first row to be copied out
  2921. #define BCPLAST                 3   // Sets number of rows to be copied out
  2922. #define BCPBATCH                4   // Sets input batch size
  2923. #define BCPKEEPNULLS            5   // Sets to insert NULLs for empty input values
  2924. #define BCPABORT                6   // Sets to have bcpexec return SUCCEED_ABORT
  2925. #define BCPODBC                 7   // Sets ODBC canonical character output
  2926. #define BCPKEEPIDENTITY         8   // Sets IDENTITY_INSERT on
  2927. #if SQLNCLI_VER < 1000
  2928. #define BCP6xFILEFMT            9   // DEPRECATED: Sets 6x file format on
  2929. #endif
  2930. #define BCPHINTSA               10  // Sets server BCP hints (ANSI string)
  2931. #define BCPHINTSW               11  // Sets server BCP hints (UNICODE string)
  2932. #define BCPFILECP               12  // Sets clients code page for the file
  2933. #define BCPUNICODEFILE          13  // Sets that the file contains unicode header
  2934. #define BCPTEXTFILE             14  // Sets BCP mode to expect a text file and to detect Unicode or ANSI automatically
  2935. #define BCPFILEFMT              15  // Sets file format version
  2936. #define BCPFMTXML               16  // Sets the format file type to xml
  2937. #define BCPFIRSTEX              17  // Starting Row for BCP operation (64 bit)
  2938. #define BCPLASTEX               18  // Ending Row for BCP operation (64 bit)
  2939. #define BCPROWCOUNT             19  // Total Number of Rows Copied (64 bit)
  2940. // BCPFILECP values
  2941. // Any valid code page that is installed on the client can be passed plus:
  2942. #define BCPFILECP_ACP           0   // Data in file is in Windows code page
  2943. #define BCPFILECP_OEMCP         1   // Data in file is in OEM code page (default)
  2944. #define BCPFILECP_RAW           (-1)// Data in file is in Server code page (no conversion)
  2945. // bcp_collen definition
  2946. #define SQL_VARLEN_DATA (-10)   // Use default length for column
  2947. // BCP column format properties
  2948. #define BCP_FMT_TYPE            0x01
  2949. #define BCP_FMT_INDICATOR_LEN   0x02
  2950. #define BCP_FMT_DATA_LEN        0x03
  2951. #define BCP_FMT_TERMINATOR      0x04
  2952. #define BCP_FMT_SERVER_COL      0x05
  2953. #define BCP_FMT_COLLATION       0x06
  2954. #define BCP_FMT_COLLATION_ID    0x07
  2955. // BCP functions
  2956. DBINT SQL_API bcp_batch (HDBC);
  2957. RETCODE SQL_API bcp_bind (HDBC, LPCBYTE, INT, DBINT, LPCBYTE, INT, INT, INT);
  2958. RETCODE SQL_API bcp_colfmt (HDBC, INT, BYTE, INT, DBINT, LPCBYTE, INT, INT);
  2959. RETCODE SQL_API bcp_collen (HDBC, DBINT, INT);
  2960. RETCODE SQL_API bcp_colptr (HDBC, LPCBYTE, INT);
  2961. RETCODE SQL_API bcp_columns (HDBC, INT);
  2962. RETCODE SQL_API bcp_control (HDBC, INT, void *);
  2963. DBINT SQL_API bcp_done (HDBC);
  2964. RETCODE SQL_API bcp_exec (HDBC, LPDBINT);
  2965. RETCODE SQL_API bcp_getcolfmt (HDBC, INT, INT, void *, INT, INT *);
  2966. RETCODE SQL_API bcp_initA (HDBC, LPCSTR, LPCSTR, LPCSTR, INT);
  2967. RETCODE SQL_API bcp_initW (HDBC, LPCWSTR, LPCWSTR, LPCWSTR, INT);
  2968. RETCODE SQL_API bcp_moretext (HDBC, DBINT, LPCBYTE);
  2969. RETCODE SQL_API bcp_readfmtA (HDBC, LPCSTR);
  2970. RETCODE SQL_API bcp_readfmtW (HDBC, LPCWSTR);
  2971. RETCODE SQL_API bcp_sendrow (HDBC);
  2972. RETCODE SQL_API bcp_setcolfmt (HDBC, INT, INT, void *, INT);
  2973. RETCODE SQL_API bcp_writefmtA (HDBC, LPCSTR);
  2974. RETCODE SQL_API bcp_writefmtW (HDBC, LPCWSTR);
  2975. CHAR* SQL_API dbprtypeA (INT);
  2976. WCHAR* SQL_API dbprtypeW (INT);
  2977. CHAR* SQL_API bcp_gettypenameA (INT, DBBOOL);
  2978. WCHAR* SQL_API bcp_gettypenameW (INT, DBBOOL);
  2979. #ifdef UNICODE
  2980. #define bcp_init        bcp_initW
  2981. #define bcp_readfmt     bcp_readfmtW
  2982. #define bcp_writefmt    bcp_writefmtW
  2983. #define dbprtype        dbprtypeW
  2984. #define bcp_gettypename bcp_gettypenameW
  2985. #define BCPHINTS        BCPHINTSW
  2986. #else
  2987. #define bcp_init        bcp_initA
  2988. #define bcp_readfmt     bcp_readfmtA
  2989. #define bcp_writefmt    bcp_writefmtA
  2990. #define dbprtype        dbprtypeA
  2991. #define bcp_gettypename bcp_gettypenameA
  2992. #define BCPHINTS        BCPHINTSA
  2993. #endif // UNICODE
  2994.  
  2995. #endif // SQLNCLI_NO_BCP
  2996.  
  2997. // The following options have been deprecated
  2998. #define SQL_FAST_CONNECT                (SQL_COPT_SS_BASE+0)
  2999. // Defines for use with SQL_FAST_CONNECT - only useable before connecting
  3000. #define SQL_FC_OFF                      0L          //  Fast connect is off
  3001. #define SQL_FC_ON                       1L          //  Fast connect is on
  3002. #define SQL_FC_DEFAULT                  SQL_FC_OFF
  3003. #define SQL_COPT_SS_ANSI_OEM            (SQL_COPT_SS_BASE+6)
  3004. #define SQL_AO_OFF                      0L
  3005. #define SQL_AO_ON                       1L
  3006. #define SQL_AO_DEFAULT                  SQL_AO_OFF
  3007. #define SQL_CA_SS_BASE_COLUMN_NAME      SQL_DESC_BASE_COLUMN_NAME
  3008.  
  3009. #endif // ODBCVER
  3010. #endif // defined(_SQLNCLI_ODBC_) || !defined(_SQLNCLI_OLEDB_)
  3011. // ODBC part of SQL Server Native Client header - end here!
  3012.  
  3013. //The following facilitates opening a handle to a SQL filestream
  3014. typedef enum _SQL_FILESTREAM_DESIRED_ACCESS {
  3015.             SQL_FILESTREAM_READ        = 0,
  3016.             SQL_FILESTREAM_WRITE       = 1,
  3017.             SQL_FILESTREAM_READWRITE   = 2
  3018. } SQL_FILESTREAM_DESIRED_ACCESS;
  3019. #define SQL_FILESTREAM_OPEN_FLAG_ASYNC               0x00000001L
  3020. #define SQL_FILESTREAM_OPEN_FLAG_NO_BUFFERING        0x00000002L
  3021. #define SQL_FILESTREAM_OPEN_FLAG_NO_WRITE_THROUGH    0x00000004L
  3022. #define SQL_FILESTREAM_OPEN_FLAG_SEQUENTIAL_SCAN     0x00000008L
  3023. #define SQL_FILESTREAM_OPEN_FLAG_RANDOM_ACCESS       0x00000010L
  3024. HANDLE __stdcall OpenSqlFilestream (
  3025.            LPCWSTR                        FilestreamPath,
  3026.            SQL_FILESTREAM_DESIRED_ACCESS  DesiredAccess,
  3027.            ULONG                          OpenOptions,
  3028.            LPBYTE                         FilestreamTransactionContext,
  3029.            SSIZE_T                        FilestreamTransactionContextLength,
  3030.            PLARGE_INTEGER                 AllocationSize);
  3031. #define FSCTL_SQL_FILESTREAM_FETCH_OLD_CONTENT       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2392, METHOD_BUFFERED, FILE_ANY_ACCESS)
  3032.  
  3033.  
  3034.  
  3035. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0010_v0_0_c_ifspec;
  3036. extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0010_v0_0_s_ifspec;
  3037.  
  3038. /* Additional Prototypes for ALL interfaces */
  3039.  
  3040. /* end of Additional Prototypes */
  3041.  
  3042. #ifdef __cplusplus
  3043. }
  3044. #endif
  3045.  
  3046. #endif
  3047.  
  3048.  
  3049.