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