Files correlati : Commento : - Creazione nuova cartella per contenere tutte le librerie esterne - Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			4646 lines
		
	
	
		
			171 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			4646 lines
		
	
	
		
			171 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
| 
 | |
| /* this ALWAYS GENERATED file contains the definitions for the interfaces */
 | |
| 
 | |
| 
 | |
|  /* File created by MIDL compiler version 7.00.0555 */
 | |
| /* Compiler settings for sqlncli.idl:
 | |
|     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 
 | |
|     protocol : dce , ms_ext, c_ext, robust
 | |
|     error checks: allocation ref bounds_check enum stub_data 
 | |
|     VC __declspec() decoration level: 
 | |
|          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
 | |
|          DECLSPEC_UUID(), MIDL_INTERFACE()
 | |
| */
 | |
| /* @@MIDL_FILE_HEADING(  ) */
 | |
| 
 | |
| #pragma warning( disable: 4049 )  /* more than 64k source lines */
 | |
| 
 | |
| 
 | |
| /* verify that the <rpcndr.h> version is high enough to compile this file*/
 | |
| #ifndef __REQUIRED_RPCNDR_H_VERSION__
 | |
| #define __REQUIRED_RPCNDR_H_VERSION__ 475
 | |
| #endif
 | |
| 
 | |
| /* verify that the <rpcsal.h> version is high enough to compile this file*/
 | |
| #ifndef __REQUIRED_RPCSAL_H_VERSION__
 | |
| #define __REQUIRED_RPCSAL_H_VERSION__ 100
 | |
| #endif
 | |
| 
 | |
| #include "rpc.h"
 | |
| #include "rpcndr.h"
 | |
| 
 | |
| #ifndef __RPCNDR_H_VERSION__
 | |
| #error this stub requires an updated version of <rpcndr.h>
 | |
| #endif // __RPCNDR_H_VERSION__
 | |
| 
 | |
| #ifndef COM_NO_WINDOWS_H
 | |
| #include "windows.h"
 | |
| #include "ole2.h"
 | |
| #endif /*COM_NO_WINDOWS_H*/
 | |
| 
 | |
| #ifndef __sqlncli_h__
 | |
| #define __sqlncli_h__
 | |
| 
 | |
| #if defined(_MSC_VER) && (_MSC_VER >= 1020)
 | |
| #pragma once
 | |
| #endif
 | |
| 
 | |
| /* Forward Declarations */ 
 | |
| 
 | |
| #ifndef __ICommandWithParameters_FWD_DEFINED__
 | |
| #define __ICommandWithParameters_FWD_DEFINED__
 | |
| typedef interface ICommandWithParameters ICommandWithParameters;
 | |
| #endif 	/* __ICommandWithParameters_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IUMSInitialize_FWD_DEFINED__
 | |
| #define __IUMSInitialize_FWD_DEFINED__
 | |
| typedef interface IUMSInitialize IUMSInitialize;
 | |
| #endif 	/* __IUMSInitialize_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __ISQLServerErrorInfo_FWD_DEFINED__
 | |
| #define __ISQLServerErrorInfo_FWD_DEFINED__
 | |
| typedef interface ISQLServerErrorInfo ISQLServerErrorInfo;
 | |
| #endif 	/* __ISQLServerErrorInfo_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IRowsetFastLoad_FWD_DEFINED__
 | |
| #define __IRowsetFastLoad_FWD_DEFINED__
 | |
| typedef interface IRowsetFastLoad IRowsetFastLoad;
 | |
| #endif 	/* __IRowsetFastLoad_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __ISchemaLock_FWD_DEFINED__
 | |
| #define __ISchemaLock_FWD_DEFINED__
 | |
| typedef interface ISchemaLock ISchemaLock;
 | |
| #endif 	/* __ISchemaLock_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IBCPSession_FWD_DEFINED__
 | |
| #define __IBCPSession_FWD_DEFINED__
 | |
| typedef interface IBCPSession IBCPSession;
 | |
| #endif 	/* __IBCPSession_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IBCPSession2_FWD_DEFINED__
 | |
| #define __IBCPSession2_FWD_DEFINED__
 | |
| typedef interface IBCPSession2 IBCPSession2;
 | |
| #endif 	/* __IBCPSession2_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __ISSAbort_FWD_DEFINED__
 | |
| #define __ISSAbort_FWD_DEFINED__
 | |
| typedef interface ISSAbort ISSAbort;
 | |
| #endif 	/* __ISSAbort_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __ISSCommandWithParameters_FWD_DEFINED__
 | |
| #define __ISSCommandWithParameters_FWD_DEFINED__
 | |
| typedef interface ISSCommandWithParameters ISSCommandWithParameters;
 | |
| #endif 	/* __ISSCommandWithParameters_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IDBAsynchStatus_FWD_DEFINED__
 | |
| #define __IDBAsynchStatus_FWD_DEFINED__
 | |
| typedef interface IDBAsynchStatus IDBAsynchStatus;
 | |
| #endif 	/* __IDBAsynchStatus_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __ISSAsynchStatus_FWD_DEFINED__
 | |
| #define __ISSAsynchStatus_FWD_DEFINED__
 | |
| typedef interface ISSAsynchStatus ISSAsynchStatus;
 | |
| #endif 	/* __ISSAsynchStatus_FWD_DEFINED__ */
 | |
| 
 | |
| 
 | |
| /* header files for imported files */
 | |
| #include "unknwn.h"
 | |
| #include "oaidl.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C"{
 | |
| #endif 
 | |
| 
 | |
| 
 | |
| /* interface __MIDL_itf_sqlncli_0000_0000 */
 | |
| /* [local] */ 
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // File:        sqlncli.h
 | |
| //
 | |
| // Copyright:   Copyright (c) Microsoft Corporation
 | |
| //
 | |
| // Contents:    SQL Server Native Client OLEDB provider and ODBC driver specific
 | |
| //              definitions.
 | |
| //
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| #if !defined(SQLNCLI_VER)
 | |
| #define SQLNCLI_VER 1100
 | |
| #endif
 | |
| 
 | |
| #if SQLNCLI_VER >= 1100
 | |
| 
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI      "Microsoft SQL Server Native Client 11.0"
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_ANSI          "Microsoft SQL Server Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI     "SQL Server Native Client 11.0"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_ANSI         "SQL Server Native Client"
 | |
| 
 | |
| #define SQLNCLI_FILE_NAME_ANSI                  "sqlncli"
 | |
| #define SQLNCLI_FILE_NAME_VER_ANSI              "sqlncli11"
 | |
| #define SQLNCLI_FILE_NAME_FULL_ANSI             "sqlncli11.dll"
 | |
| 
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE   L"Microsoft SQL Server Native Client 11.0"
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_UNICODE       L"Microsoft SQL Server Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE  L"SQL Server Native Client 11.0"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_UNICODE      L"SQL Server Native Client"
 | |
| 
 | |
| #define SQLNCLI_FILE_NAME_UNICODE               L"sqlncli"
 | |
| #define SQLNCLI_FILE_NAME_VER_UNICODE           L"sqlncli11"
 | |
| #define SQLNCLI_FILE_NAME_FULL_UNICODE          L"sqlncli11.dll"
 | |
| 
 | |
| #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #define SQLNCLI_VI_PROG_ID_ANSI                 "SQLNCLI11"
 | |
| #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI    "SQLNCLI11.ErrorLookup"
 | |
| #define SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI      "SQLNCLI11.Enumerator"
 | |
| 
 | |
| #define SQLNCLI_PROG_ID_ANSI                    "SQLNCLI11.1"
 | |
| #define SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI       "SQLNCLI11.ErrorLookup.1"
 | |
| #define SQLNCLI_ENUMERATOR_PROG_ID_ANSI         "SQLNCLI11.Enumerator.1"
 | |
| 
 | |
| #define SQLNCLI_VI_PROG_ID_UNICODE              L"SQLNCLI11"
 | |
| #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI11.ErrorLookup"
 | |
| #define SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE   L"SQLNCLI11.Enumerator"
 | |
| 
 | |
| #define SQLNCLI_PROG_ID_UNICODE                 L"SQLNCLI11.1"
 | |
| #define SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE    L"SQLNCLI11.ErrorLookup.1"
 | |
| #define SQLNCLI_ENUMERATOR_PROG_ID_UNICODE      L"SQLNCLI11.Enumerator.1"
 | |
| 
 | |
| #define SQLNCLI_CLSID                           CLSID_SQLNCLI11
 | |
| #define SQLNCLI_ERROR_CLSID                     CLSID_SQLNCLI11_ERROR
 | |
| #define SQLNCLI_ENUMERATOR_CLSID                CLSID_SQLNCLI11_ENUMERATOR
 | |
| 
 | |
| #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #elif SQLNCLI_VER >= 1000
 | |
| 
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI      "Microsoft SQL Server Native Client 10.0"
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_ANSI          "Microsoft SQL Server Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI     "SQL Server Native Client 10.0"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_ANSI         "SQL Server Native Client"
 | |
| 
 | |
| #define SQLNCLI_FILE_NAME_ANSI                  "sqlncli"
 | |
| #define SQLNCLI_FILE_NAME_VER_ANSI              "sqlncli10"
 | |
| #define SQLNCLI_FILE_NAME_FULL_ANSI             "sqlncli10.dll"
 | |
| 
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE   L"Microsoft SQL Server Native Client 10.0"
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_UNICODE       L"Microsoft SQL Server Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE  L"SQL Server Native Client 10.0"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_UNICODE      L"SQL Server Native Client"
 | |
| 
 | |
| #define SQLNCLI_FILE_NAME_UNICODE               L"sqlncli"
 | |
| #define SQLNCLI_FILE_NAME_VER_UNICODE           L"sqlncli10"
 | |
| #define SQLNCLI_FILE_NAME_FULL_UNICODE          L"sqlncli10.dll"
 | |
| 
 | |
| #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #define SQLNCLI_VI_PROG_ID_ANSI                 "SQLNCLI10"
 | |
| #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI    "SQLNCLI10 ErrorLookup"
 | |
| #define SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI      "SQLNCLI10 Enumerator"
 | |
| 
 | |
| #define SQLNCLI_PROG_ID_ANSI                    "SQLNCLI10.1"
 | |
| #define SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI       "SQLNCLI10 ErrorLookup.1"
 | |
| #define SQLNCLI_ENUMERATOR_PROG_ID_ANSI         "SQLNCLI10 Enumerator.1"
 | |
| 
 | |
| #define SQLNCLI_VI_PROG_ID_UNICODE              L"SQLNCLI10"
 | |
| #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI10 ErrorLookup"
 | |
| #define SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE   L"SQLNCLI10 Enumerator"
 | |
| 
 | |
| #define SQLNCLI_PROG_ID_UNICODE                 L"SQLNCLI10.1"
 | |
| #define SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE    L"SQLNCLI10 ErrorLookup.1"
 | |
| #define SQLNCLI_ENUMERATOR_PROG_ID_UNICODE      L"SQLNCLI10 Enumerator.1"
 | |
| 
 | |
| #define SQLNCLI_CLSID                           CLSID_SQLNCLI10
 | |
| #define SQLNCLI_ERROR_CLSID                     CLSID_SQLNCLI10_ERROR
 | |
| #define SQLNCLI_ENUMERATOR_CLSID                CLSID_SQLNCLI10_ENUMERATOR
 | |
| 
 | |
| #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #else
 | |
| 
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI      "Microsoft SQL Server Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_ANSI          "Microsoft SQL Server Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI     "SQL Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_ANSI         "SQL Native Client"
 | |
| 
 | |
| #define SQLNCLI_FILE_NAME_ANSI                  "sqlncli"
 | |
| #define SQLNCLI_FILE_NAME_VER_ANSI              "sqlncli"
 | |
| #define SQLNCLI_FILE_NAME_FULL_ANSI             "sqlncli.dll"
 | |
| 
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE   L"Microsoft SQL Server Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_UNICODE       L"Microsoft SQL Server Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE  L"SQL Native Client"
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_UNICODE      L"SQL Native Client"
 | |
| 
 | |
| #define SQLNCLI_FILE_NAME_UNICODE               L"sqlncli"
 | |
| #define SQLNCLI_FILE_NAME_VER_UNICODE           L"sqlncli"
 | |
| #define SQLNCLI_FILE_NAME_FULL_UNICODE          L"sqlncli.dll"
 | |
| 
 | |
| #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #define SQLNCLI_VI_PROG_ID_ANSI                 "SQLNCLI"
 | |
| #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI    "SQLNCLI ErrorLookup"
 | |
| #define SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI      "SQLNCLI Enumerator"
 | |
| 
 | |
| #define SQLNCLI_PROG_ID_ANSI                    "SQLNCLI.1"
 | |
| #define SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI       "SQLNCLI ErrorLookup.1"
 | |
| #define SQLNCLI_ENUMERATOR_PROG_ID_ANSI         "SQLNCLI Enumerator.1"
 | |
| 
 | |
| #define SQLNCLI_VI_PROG_ID_UNICODE              L"SQLNCLI"
 | |
| #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE L"SQLNCLI ErrorLookup"
 | |
| #define SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE   L"SQLNCLI Enumerator"
 | |
| 
 | |
| #define SQLNCLI_PROG_ID_UNICODE                 L"SQLNCLI.1"
 | |
| #define SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE    L"SQLNCLI ErrorLookup.1"
 | |
| #define SQLNCLI_ENUMERATOR_PROG_ID_UNICODE      L"SQLNCLI Enumerator.1"
 | |
| 
 | |
| #define SQLNCLI_CLSID                           CLSID_SQLNCLI
 | |
| #define SQLNCLI_ERROR_CLSID                     CLSID_SQLNCLI_ERROR
 | |
| #define SQLNCLI_ENUMERATOR_CLSID                CLSID_SQLNCLI_ENUMERATOR
 | |
| 
 | |
| #endif  // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #endif  // SQLNCLI_VER >= 1100
 | |
| 
 | |
| // define the character type agnostic constants
 | |
| #if defined(_UNICODE) || defined(UNICODE)
 | |
| 
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_VER           SQLNCLI_PRODUCT_NAME_FULL_VER_UNICODE
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL               SQLNCLI_PRODUCT_NAME_FULL_UNICODE
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_VER          SQLNCLI_PRODUCT_NAME_SHORT_VER_UNICODE
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT              SQLNCLI_PRODUCT_NAME_SHORT_UNICODE
 | |
| 
 | |
| #define SQLNCLI_FILE_NAME                       SQLNCLI_FILE_NAME_UNICODE
 | |
| #define SQLNCLI_FILE_NAME_VER                   SQLNCLI_FILE_NAME_VER_UNICODE
 | |
| #define SQLNCLI_FILE_NAME_FULL                  SQLNCLI_FILE_NAME_FULL_UNICODE
 | |
| 
 | |
| #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #define SQLNCLI_VI_PROG_ID                      SQLNCLI_VI_PROG_ID_UNICODE
 | |
| #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID         SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_UNICODE
 | |
| #define SQLNCLI_VI_ENUMERATOR_PROG_ID           SQLNCLI_VI_ENUMERATOR_PROG_ID_UNICODE
 | |
| 
 | |
| #define SQLNCLI_PROG_ID                         SQLNCLI_PROG_ID_UNICODE
 | |
| #define SQLNCLI_ERROR_LOOKUP_PROG_ID            SQLNCLI_ERROR_LOOKUP_PROG_ID_UNICODE
 | |
| #define SQLNCLI_ENUMERATOR_PROG_ID              SQLNCLI_ENUMERATOR_PROG_ID_UNICODE
 | |
| 
 | |
| #endif  // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #else   // _UNICODE || UNICODE
 | |
| 
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL_VER           SQLNCLI_PRODUCT_NAME_FULL_VER_ANSI
 | |
| #define SQLNCLI_PRODUCT_NAME_FULL               SQLNCLI_PRODUCT_NAME_FULL_ANSI
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT_VER          SQLNCLI_PRODUCT_NAME_SHORT_VER_ANSI
 | |
| #define SQLNCLI_PRODUCT_NAME_SHORT              SQLNCLI_PRODUCT_NAME_SHORT_ANSI
 | |
| 
 | |
| #define SQLNCLI_FILE_NAME                       SQLNCLI_FILE_NAME_ANSI
 | |
| #define SQLNCLI_FILE_NAME_VER                   SQLNCLI_FILE_NAME_VER_ANSI
 | |
| #define SQLNCLI_FILE_NAME_FULL                  SQLNCLI_FILE_NAME_FULL_ANSI
 | |
| 
 | |
| #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #define SQLNCLI_VI_PROG_ID                      SQLNCLI_VI_PROG_ID_ANSI
 | |
| #define SQLNCLI_VI_ERROR_LOOKUP_PROG_ID         SQLNCLI_VI_ERROR_LOOKUP_PROG_ID_ANSI
 | |
| #define SQLNCLI_VI_ENUMERATOR_PROG_ID           SQLNCLI_VI_ENUMERATOR_PROG_ID_ANSI
 | |
| 
 | |
| #define SQLNCLI_PROG_ID                         SQLNCLI_PROG_ID_ANSI
 | |
| #define SQLNCLI_ERROR_LOOKUP_PROG_ID            SQLNCLI_ERROR_LOOKUP_PROG_ID_ANSI
 | |
| #define SQLNCLI_ENUMERATOR_PROG_ID              SQLNCLI_ENUMERATOR_PROG_ID_ANSI
 | |
| 
 | |
| #endif  // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| #endif  // _UNICODE || UNICODE
 | |
| 
 | |
| #if defined(_SQLNCLI_ODBC_) || !defined(_SQLNCLI_OLEDB_)
 | |
| 
 | |
| #define SQLNCLI_DRIVER_NAME                     SQLNCLI_PRODUCT_NAME_SHORT_VER
 | |
| 
 | |
| #endif
 | |
| 
 | |
| // OLEDB part of SQL Server Native Client header - begin here
 | |
| #if defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| #ifndef  __oledb_h__
 | |
| #include <oledb.h>
 | |
| #endif  /*__oledb_h__*/
 | |
| 
 | |
| #if 0        // This is already defined in oledb.h
 | |
| 
 | |
| #ifdef _WIN64
 | |
| 
 | |
| // Length of a non-character object, size
 | |
| typedef ULONGLONG			DBLENGTH;
 | |
| 
 | |
| // Offset within a rowset
 | |
| typedef LONGLONG				DBROWOFFSET;
 | |
| 
 | |
| // Number of rows
 | |
| typedef LONGLONG				DBROWCOUNT;
 | |
| 
 | |
| typedef ULONGLONG			DBCOUNTITEM;
 | |
| 
 | |
| // Ordinal (column number, etc.)
 | |
| typedef ULONGLONG			DBORDINAL;
 | |
| 
 | |
| typedef LONGLONG				DB_LORDINAL;
 | |
| 
 | |
| // Bookmarks
 | |
| typedef ULONGLONG			DBBKMARK;
 | |
| // Offset in the buffer
 | |
| 
 | |
| typedef ULONGLONG			DBBYTEOFFSET;
 | |
| // Reference count of each row/accessor  handle
 | |
| 
 | |
| typedef ULONG				DBREFCOUNT;
 | |
| 
 | |
| // Parameters
 | |
| typedef ULONGLONG			DB_UPARAMS;
 | |
| 
 | |
| typedef LONGLONG				DB_LPARAMS;
 | |
| 
 | |
| // hash values corresponding to the elements (bookmarks)
 | |
| typedef DWORDLONG			DBHASHVALUE;
 | |
| 
 | |
| // For reserve
 | |
| typedef DWORDLONG			DB_DWRESERVE;
 | |
| 
 | |
| typedef LONGLONG				DB_LRESERVE;
 | |
| 
 | |
| typedef ULONGLONG			DB_URESERVE;
 | |
| 
 | |
| #else //_WIN64
 | |
| 
 | |
| // Length of a non-character object, size
 | |
| typedef ULONG DBLENGTH;
 | |
| 
 | |
| // Offset within a rowset
 | |
| typedef LONG DBROWOFFSET;
 | |
| 
 | |
| // Number of rows
 | |
| typedef LONG DBROWCOUNT;
 | |
| 
 | |
| typedef ULONG DBCOUNTITEM;
 | |
| 
 | |
| // Ordinal (column number, etc.)
 | |
| typedef ULONG DBORDINAL;
 | |
| 
 | |
| typedef LONG DB_LORDINAL;
 | |
| 
 | |
| // Bookmarks
 | |
| typedef ULONG DBBKMARK;
 | |
| 
 | |
| // Offset in the buffer
 | |
| typedef ULONG DBBYTEOFFSET;
 | |
| 
 | |
| // Reference count of each row handle
 | |
| typedef ULONG DBREFCOUNT;
 | |
| 
 | |
| // Parameters
 | |
| typedef ULONG DB_UPARAMS;
 | |
| 
 | |
| typedef LONG DB_LPARAMS;
 | |
| 
 | |
| // hash values corresponding to the elements (bookmarks)
 | |
| typedef DWORD DBHASHVALUE;
 | |
| 
 | |
| // For reserve
 | |
| typedef DWORD DB_DWRESERVE;
 | |
| 
 | |
| typedef LONG DB_LRESERVE;
 | |
| 
 | |
| typedef ULONG DB_URESERVE;
 | |
| 
 | |
| #endif	// _WIN64
 | |
| typedef DWORD DBKIND;
 | |
| 
 | |
| 
 | |
| enum DBKINDENUM
 | |
|     {	DBKIND_GUID_NAME	= 0,
 | |
| 	DBKIND_GUID_PROPID	= ( DBKIND_GUID_NAME + 1 ) ,
 | |
| 	DBKIND_NAME	= ( DBKIND_GUID_PROPID + 1 ) ,
 | |
| 	DBKIND_PGUID_NAME	= ( DBKIND_NAME + 1 ) ,
 | |
| 	DBKIND_PGUID_PROPID	= ( DBKIND_PGUID_NAME + 1 ) ,
 | |
| 	DBKIND_PROPID	= ( DBKIND_PGUID_PROPID + 1 ) ,
 | |
| 	DBKIND_GUID	= ( DBKIND_PROPID + 1 ) 
 | |
|     } ;
 | |
| typedef struct tagDBID
 | |
|     {
 | |
|     union 
 | |
|         {
 | |
|         GUID guid;
 | |
|         GUID *pguid;
 | |
|          /* Empty union arm */ 
 | |
|         } 	uGuid;
 | |
|     DBKIND eKind;
 | |
|     union 
 | |
|         {
 | |
|         LPOLESTR pwszName;
 | |
|         ULONG ulPropid;
 | |
|          /* Empty union arm */ 
 | |
|         } 	uName;
 | |
|     } 	DBID;
 | |
| 
 | |
| typedef struct tagDB_NUMERIC
 | |
|     {
 | |
|     BYTE precision;
 | |
|     BYTE scale;
 | |
|     BYTE sign;
 | |
|     BYTE val[ 16 ];
 | |
|     } 	DB_NUMERIC;
 | |
| 
 | |
| typedef struct tagDBDATE
 | |
|     {
 | |
|     SHORT year;
 | |
|     USHORT month;
 | |
|     USHORT day;
 | |
|     } 	DBDATE;
 | |
| 
 | |
| typedef struct tagDBTIME
 | |
|     {
 | |
|     USHORT hour;
 | |
|     USHORT minute;
 | |
|     USHORT second;
 | |
|     } 	DBTIME;
 | |
| 
 | |
| typedef struct tagDBTIMESTAMP
 | |
|     {
 | |
|     SHORT year;
 | |
|     USHORT month;
 | |
|     USHORT day;
 | |
|     USHORT hour;
 | |
|     USHORT minute;
 | |
|     USHORT second;
 | |
|     ULONG fraction;
 | |
|     } 	DBTIMESTAMP;
 | |
| 
 | |
| typedef struct tagDBOBJECT
 | |
|     {
 | |
|     DWORD dwFlags;
 | |
|     IID iid;
 | |
|     } 	DBOBJECT;
 | |
| 
 | |
| typedef WORD DBTYPE;
 | |
| 
 | |
| typedef ULONG_PTR HACCESSOR;
 | |
| 
 | |
| typedef ULONG_PTR HCHAPTER;
 | |
| 
 | |
| typedef DWORD DBPARAMFLAGS;
 | |
| 
 | |
| typedef struct tagDBPARAMINFO
 | |
|     {
 | |
|     DBPARAMFLAGS dwFlags;
 | |
|     DBORDINAL iOrdinal;
 | |
|     LPOLESTR pwszName;
 | |
|     ITypeInfo *pTypeInfo;
 | |
|     DBLENGTH ulParamSize;
 | |
|     DBTYPE wType;
 | |
|     BYTE bPrecision;
 | |
|     BYTE bScale;
 | |
|     } 	DBPARAMINFO;
 | |
| 
 | |
| typedef DWORD DBPROPID;
 | |
| 
 | |
| typedef struct tagDBPROPIDSET
 | |
|     {
 | |
|     DBPROPID *rgPropertyIDs;
 | |
|     ULONG cPropertyIDs;
 | |
|     GUID guidPropertySet;
 | |
|     } 	DBPROPIDSET;
 | |
| 
 | |
| typedef DWORD DBPROPFLAGS;
 | |
| 
 | |
| typedef DWORD DBPROPOPTIONS;
 | |
| 
 | |
| typedef DWORD DBPROPSTATUS;
 | |
| 
 | |
| typedef struct tagDBPROP
 | |
|     {
 | |
|     DBPROPID dwPropertyID;
 | |
|     DBPROPOPTIONS dwOptions;
 | |
|     DBPROPSTATUS dwStatus;
 | |
|     DBID colid;
 | |
|     VARIANT vValue;
 | |
|     } 	DBPROP;
 | |
| 
 | |
| typedef struct tagDBPROPSET
 | |
|     {
 | |
|     DBPROP *rgProperties;
 | |
|     ULONG cProperties;
 | |
|     GUID guidPropertySet;
 | |
|     } 	DBPROPSET;
 | |
| 
 | |
| 
 | |
| 
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0000_v0_0_c_ifspec;
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0000_v0_0_s_ifspec;
 | |
| 
 | |
| #ifndef __ICommandWithParameters_INTERFACE_DEFINED__
 | |
| #define __ICommandWithParameters_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface ICommandWithParameters */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| typedef struct tagDBPARAMBINDINFO
 | |
|     {
 | |
|     LPOLESTR pwszDataSourceType;
 | |
|     LPOLESTR pwszName;
 | |
|     DBLENGTH ulParamSize;
 | |
|     DBPARAMFLAGS dwFlags;
 | |
|     BYTE bPrecision;
 | |
|     BYTE bScale;
 | |
|     } 	DBPARAMBINDINFO;
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_ICommandWithParameters;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("0c733a64-2a1c-11ce-ade5-00aa0044773d")
 | |
|     ICommandWithParameters : public IUnknown
 | |
|     {
 | |
|     public:
 | |
|         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetParameterInfo( 
 | |
|             /* [out][in] */ DB_UPARAMS *pcParams,
 | |
|             /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
 | |
|             /* [out] */ OLECHAR **ppNamesBuffer) = 0;
 | |
|         
 | |
|         virtual /* [local] */ HRESULT STDMETHODCALLTYPE MapParameterNames( 
 | |
|             /* [in] */ DB_UPARAMS cParamNames,
 | |
|             /* [size_is][in] */ const OLECHAR *rgParamNames[  ],
 | |
|             /* [size_is][out] */ DB_LPARAMS rgParamOrdinals[  ]) = 0;
 | |
|         
 | |
|         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetParameterInfo( 
 | |
|             /* [in] */ DB_UPARAMS cParams,
 | |
|             /* [size_is][unique][in] */ const DB_UPARAMS rgParamOrdinals[  ],
 | |
|             /* [size_is][unique][in] */ const DBPARAMBINDINFO rgParamBindInfo[  ]) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct ICommandWithParametersVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             ICommandWithParameters * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             ICommandWithParameters * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             ICommandWithParameters * This);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetParameterInfo )( 
 | |
|             ICommandWithParameters * This,
 | |
|             /* [out][in] */ DB_UPARAMS *pcParams,
 | |
|             /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
 | |
|             /* [out] */ OLECHAR **ppNamesBuffer);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *MapParameterNames )( 
 | |
|             ICommandWithParameters * This,
 | |
|             /* [in] */ DB_UPARAMS cParamNames,
 | |
|             /* [size_is][in] */ const OLECHAR *rgParamNames[  ],
 | |
|             /* [size_is][out] */ DB_LPARAMS rgParamOrdinals[  ]);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetParameterInfo )( 
 | |
|             ICommandWithParameters * This,
 | |
|             /* [in] */ DB_UPARAMS cParams,
 | |
|             /* [size_is][unique][in] */ const DB_UPARAMS rgParamOrdinals[  ],
 | |
|             /* [size_is][unique][in] */ const DBPARAMBINDINFO rgParamBindInfo[  ]);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } ICommandWithParametersVtbl;
 | |
| 
 | |
|     interface ICommandWithParameters
 | |
|     {
 | |
|         CONST_VTBL struct ICommandWithParametersVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define ICommandWithParameters_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define ICommandWithParameters_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define ICommandWithParameters_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define ICommandWithParameters_GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer)	\
 | |
|     ( (This)->lpVtbl -> GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer) ) 
 | |
| 
 | |
| #define ICommandWithParameters_MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals)	\
 | |
|     ( (This)->lpVtbl -> MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals) ) 
 | |
| 
 | |
| #define ICommandWithParameters_SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo)	\
 | |
|     ( (This)->lpVtbl -> SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteGetParameterInfo_Proxy( 
 | |
|     ICommandWithParameters * This,
 | |
|     /* [out][in] */ DB_UPARAMS *pcParams,
 | |
|     /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
 | |
|     /* [size_is][size_is][out] */ DBBYTEOFFSET **prgNameOffsets,
 | |
|     /* [out][in] */ DBLENGTH *pcbNamesBuffer,
 | |
|     /* [size_is][size_is][unique][out][in] */ OLECHAR **ppNamesBuffer,
 | |
|     /* [out] */ IErrorInfo **ppErrorInfoRem);
 | |
| 
 | |
| 
 | |
| void __RPC_STUB ICommandWithParameters_RemoteGetParameterInfo_Stub(
 | |
|     IRpcStubBuffer *This,
 | |
|     IRpcChannelBuffer *_pRpcChannelBuffer,
 | |
|     PRPC_MESSAGE _pRpcMessage,
 | |
|     DWORD *_pdwStubPhase);
 | |
| 
 | |
| 
 | |
| /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteMapParameterNames_Proxy( 
 | |
|     ICommandWithParameters * This,
 | |
|     /* [in] */ DB_UPARAMS cParamNames,
 | |
|     /* [size_is][in] */ LPCOLESTR *rgParamNames,
 | |
|     /* [size_is][out] */ DB_LPARAMS *rgParamOrdinals,
 | |
|     /* [out] */ IErrorInfo **ppErrorInfoRem);
 | |
| 
 | |
| 
 | |
| void __RPC_STUB ICommandWithParameters_RemoteMapParameterNames_Stub(
 | |
|     IRpcStubBuffer *This,
 | |
|     IRpcChannelBuffer *_pRpcChannelBuffer,
 | |
|     PRPC_MESSAGE _pRpcMessage,
 | |
|     DWORD *_pdwStubPhase);
 | |
| 
 | |
| 
 | |
| /* [call_as] */ HRESULT STDMETHODCALLTYPE ICommandWithParameters_RemoteSetParameterInfo_Proxy( 
 | |
|     ICommandWithParameters * This,
 | |
|     /* [in] */ DB_UPARAMS cParams,
 | |
|     /* [size_is][unique][in] */ const DB_UPARAMS *rgParamOrdinals,
 | |
|     /* [size_is][unique][in] */ const DBPARAMBINDINFO *rgParamBindInfo,
 | |
|     /* [out] */ IErrorInfo **ppErrorInfoRem);
 | |
| 
 | |
| 
 | |
| void __RPC_STUB ICommandWithParameters_RemoteSetParameterInfo_Stub(
 | |
|     IRpcStubBuffer *This,
 | |
|     IRpcChannelBuffer *_pRpcChannelBuffer,
 | |
|     PRPC_MESSAGE _pRpcMessage,
 | |
|     DWORD *_pdwStubPhase);
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __ICommandWithParameters_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| /* interface __MIDL_itf_sqlncli_0000_0001 */
 | |
| /* [local] */ 
 | |
| 
 | |
| typedef DWORD DBASYNCHOP;
 | |
| 
 | |
| typedef DWORD DBASYNCHPHASE;
 | |
| 
 | |
| #endif       // This is already defined in oledb.h
 | |
| 
 | |
| #ifndef _SQLNCLI_OLEDB_IGNORE_DEPRECATION_WARNING_
 | |
|     #define _SQLNCLI_OLEDB_DEPRECATE_WARNING __declspec(deprecated("The SQL Server Native Client OLEDB provider is deprecated and will be removed in a future release of SQL Server Native Client. To disable this warning, define the following symbol in your application: _SQLNCLI_OLEDB_IGNORE_DEPRECATION_WARNING_"))
 | |
| #else
 | |
|     #define _SQLNCLI_OLEDB_DEPRECATE_WARNING
 | |
| #endif
 | |
| //-------------------------------------------------------------------
 | |
| // Variant Access macros, similar to ole automation.
 | |
| //-------------------------------------------------------------------
 | |
| #define V_SS_VT(X)               ((X)->vt)
 | |
| #define V_SS_UNION(X, Y)         ((X)->Y)
 | |
| 
 | |
| #define V_SS_UI1(X)              V_SS_UNION(X, bTinyIntVal)
 | |
| #define V_SS_I2(X)               V_SS_UNION(X, sShortIntVal)
 | |
| #define V_SS_I4(X)               V_SS_UNION(X, lIntVal)
 | |
| #define V_SS_I8(X)               V_SS_UNION(X, llBigIntVal)
 | |
| 
 | |
| #define V_SS_R4(X)               V_SS_UNION(X, fltRealVal)
 | |
| #define V_SS_R8(X)               V_SS_UNION(X, dblFloatVal)
 | |
| #define V_SS_UI4(X)              V_SS_UNION(X, ulVal)
 | |
| 
 | |
| #define V_SS_MONEY(X)            V_SS_UNION(X, cyMoneyVal)
 | |
| #define V_SS_SMALLMONEY(X)       V_SS_UNION(X, cyMoneyVal)
 | |
| 
 | |
| #define V_SS_WSTRING(X)          V_SS_UNION(X, NCharVal)
 | |
| #define V_SS_WVARSTRING(X)       V_SS_UNION(X, NCharVal)
 | |
| 
 | |
| #define V_SS_STRING(X)           V_SS_UNION(X, CharVal)
 | |
| #define V_SS_VARSTRING(X)        V_SS_UNION(X, CharVal)
 | |
| 
 | |
| #define V_SS_BIT(X)              V_SS_UNION(X, fBitVal)
 | |
| #define V_SS_GUID(X)             V_SS_UNION(X, rgbGuidVal)
 | |
| 
 | |
| #define V_SS_NUMERIC(X)          V_SS_UNION(X, numNumericVal)
 | |
| #define V_SS_DECIMAL(X)          V_SS_UNION(X, numNumericVal)
 | |
| 
 | |
| #define V_SS_BINARY(X)           V_SS_UNION(X, BinaryVal)
 | |
| #define V_SS_VARBINARY(X)        V_SS_UNION(X, BinaryVal)
 | |
| 
 | |
| #define V_SS_DATETIME(X)         V_SS_UNION(X, tsDateTimeVal)
 | |
| #define V_SS_SMALLDATETIME(X)    V_SS_UNION(X, tsDateTimeVal)
 | |
| 
 | |
| #define V_SS_UNKNOWN(X)          V_SS_UNION(X, UnknownType)
 | |
| 
 | |
| //Text and image types.
 | |
| #define V_SS_IMAGE(X)            V_SS_UNION(X, ImageVal)
 | |
| #define V_SS_TEXT(X)             V_SS_UNION(X, TextVal)
 | |
| #define V_SS_NTEXT(X)            V_SS_UNION(X, NTextVal)
 | |
| 
 | |
| //Microsoft SQL Server 2008 datetime.
 | |
| #define V_SS_DATE(X)             V_SS_UNION(X, dDateVal)
 | |
| #define V_SS_TIME2(X)            V_SS_UNION(X, Time2Val)
 | |
| #define V_SS_DATETIME2(X)        V_SS_UNION(X, DateTimeVal)
 | |
| #define V_SS_DATETIMEOFFSET(X)   V_SS_UNION(X, DateTimeOffsetVal)
 | |
| 
 | |
| //-------------------------------------------------------------------
 | |
| // define SQL Server specific types.
 | |
| //-------------------------------------------------------------------
 | |
| typedef enum DBTYPEENUM EOledbTypes;
 | |
| #define DBTYPE_XML               ((EOledbTypes) 141) // introduced in SQL 2005
 | |
| #define DBTYPE_TABLE             ((EOledbTypes) 143) // introduced in SQL 2008
 | |
| #define DBTYPE_DBTIME2           ((EOledbTypes) 145) // introduced in SQL 2008
 | |
| #define DBTYPE_DBTIMESTAMPOFFSET ((EOledbTypes) 146) // introduced in SQL 2008
 | |
| #ifdef  _SQLOLEDB_H_
 | |
| #undef DBTYPE_SQLVARIANT
 | |
| #endif //_SQLOLEDB_H_
 | |
| #define DBTYPE_SQLVARIANT        ((EOledbTypes) 144) // introduced in MDAC 2.5
 | |
| 
 | |
| 
 | |
| #ifndef  _SQLOLEDB_H_
 | |
| enum SQLVARENUM
 | |
|     {
 | |
|     VT_SS_EMPTY = DBTYPE_EMPTY,
 | |
|     VT_SS_NULL = DBTYPE_NULL,
 | |
|     VT_SS_UI1 = DBTYPE_UI1,
 | |
|     VT_SS_I2 = DBTYPE_I2,
 | |
|     VT_SS_I4 = DBTYPE_I4,
 | |
|     VT_SS_I8 = DBTYPE_I8,
 | |
| 
 | |
|     //Floats
 | |
|     VT_SS_R4  = DBTYPE_R4,
 | |
|     VT_SS_R8 = DBTYPE_R8,
 | |
| 
 | |
|     //Money
 | |
|     VT_SS_MONEY = DBTYPE_CY,
 | |
|     VT_SS_SMALLMONEY  = 200,
 | |
| 
 | |
|     //Strings
 | |
|     VT_SS_WSTRING    = 201,
 | |
|     VT_SS_WVARSTRING = 202,
 | |
| 
 | |
|     VT_SS_STRING     = 203,
 | |
|     VT_SS_VARSTRING  = 204,
 | |
| 
 | |
|     //Bit
 | |
|     VT_SS_BIT        = DBTYPE_BOOL,
 | |
| 
 | |
|     //Guid
 | |
|     VT_SS_GUID       = DBTYPE_GUID,
 | |
| 
 | |
|     //Exact precision
 | |
|     VT_SS_NUMERIC    = DBTYPE_NUMERIC,
 | |
|     VT_SS_DECIMAL    = 205,
 | |
| 
 | |
|     //Datetime
 | |
|     VT_SS_DATETIME      = DBTYPE_DBTIMESTAMP,
 | |
|     VT_SS_SMALLDATETIME =206,
 | |
| 
 | |
|     //Binary
 | |
|     VT_SS_BINARY =207,
 | |
|     VT_SS_VARBINARY = 208,
 | |
|     //Future
 | |
|     VT_SS_UNKNOWN   = 209,
 | |
| 
 | |
|     //Additional datetime
 | |
|     VT_SS_DATE = DBTYPE_DBDATE,
 | |
|     VT_SS_TIME2 = DBTYPE_DBTIME2,
 | |
|     VT_SS_DATETIME2 = 212,
 | |
|     VT_SS_DATETIMEOFFSET = DBTYPE_DBTIMESTAMPOFFSET,
 | |
|     };
 | |
| typedef unsigned short SSVARTYPE;
 | |
| 
 | |
| 
 | |
| enum DBPARAMFLAGSENUM_SS_100
 | |
|     {	DBPARAMFLAGS_SS_ISVARIABLESCALE	= 0x40000000
 | |
|     } ;
 | |
| enum DBCOLUMNFLAGSENUM_SS_100
 | |
|     {   DBCOLUMNFLAGS_SS_ISVARIABLESCALE    = 0x40000000,
 | |
|         DBCOLUMNFLAGS_SS_ISCOLUMNSET        = 0x80000000
 | |
|     } ;
 | |
| 
 | |
| //-------------------------------------------------------------------
 | |
| // Class Factory Interface used to initialize pointer to UMS.
 | |
| //-------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0001_v0_0_c_ifspec;
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0001_v0_0_s_ifspec;
 | |
| 
 | |
| #ifndef __IUMSInitialize_INTERFACE_DEFINED__
 | |
| #define __IUMSInitialize_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface IUMSInitialize */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_IUMSInitialize;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("5cf4ca14-ef21-11d0-97e7-00c04fc2ad98")
 | |
|     IUMSInitialize : public IUnknown
 | |
|     {
 | |
|     public:
 | |
|         virtual HRESULT STDMETHODCALLTYPE Initialize( 
 | |
|             /* [in] */ void *pUMS) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct IUMSInitializeVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             IUMSInitialize * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             IUMSInitialize * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             IUMSInitialize * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
 | |
|             IUMSInitialize * This,
 | |
|             /* [in] */ void *pUMS);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } IUMSInitializeVtbl;
 | |
| 
 | |
|     interface IUMSInitialize
 | |
|     {
 | |
|         CONST_VTBL struct IUMSInitializeVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define IUMSInitialize_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define IUMSInitialize_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define IUMSInitialize_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define IUMSInitialize_Initialize(This,pUMS)	\
 | |
|     ( (This)->lpVtbl -> Initialize(This,pUMS) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __IUMSInitialize_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| /* interface __MIDL_itf_sqlncli_0000_0002 */
 | |
| /* [local] */ 
 | |
| 
 | |
| 
 | |
| // the structure returned by  ISQLServerErrorInfo::GetSQLServerInfo
 | |
| typedef struct tagSSErrorInfo
 | |
|     {
 | |
|     LPOLESTR pwszMessage;
 | |
|     LPOLESTR pwszServer;
 | |
|     LPOLESTR pwszProcedure;
 | |
|     LONG lNative;
 | |
|     BYTE bState;
 | |
|     BYTE bClass;
 | |
|     WORD wLineNumber;
 | |
|     } 	SSERRORINFO;
 | |
| 
 | |
| 
 | |
| 
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0002_v0_0_c_ifspec;
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0002_v0_0_s_ifspec;
 | |
| 
 | |
| #ifndef __ISQLServerErrorInfo_INTERFACE_DEFINED__
 | |
| #define __ISQLServerErrorInfo_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface ISQLServerErrorInfo */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_ISQLServerErrorInfo;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("5CF4CA12-EF21-11d0-97E7-00C04FC2AD98")
 | |
|     ISQLServerErrorInfo : public IUnknown
 | |
|     {
 | |
|     public:
 | |
|         virtual HRESULT STDMETHODCALLTYPE GetErrorInfo( 
 | |
|             /* [out] */ SSERRORINFO **ppErrorInfo,
 | |
|             /* [annotation][out] */ 
 | |
|             __deref_out  OLECHAR **ppStringsBuffer) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct ISQLServerErrorInfoVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             ISQLServerErrorInfo * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             ISQLServerErrorInfo * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             ISQLServerErrorInfo * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *GetErrorInfo )( 
 | |
|             ISQLServerErrorInfo * This,
 | |
|             /* [out] */ SSERRORINFO **ppErrorInfo,
 | |
|             /* [annotation][out] */ 
 | |
|             __deref_out  OLECHAR **ppStringsBuffer);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } ISQLServerErrorInfoVtbl;
 | |
| 
 | |
|     interface ISQLServerErrorInfo
 | |
|     {
 | |
|         CONST_VTBL struct ISQLServerErrorInfoVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define ISQLServerErrorInfo_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define ISQLServerErrorInfo_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define ISQLServerErrorInfo_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define ISQLServerErrorInfo_GetErrorInfo(This,ppErrorInfo,ppStringsBuffer)	\
 | |
|     ( (This)->lpVtbl -> GetErrorInfo(This,ppErrorInfo,ppStringsBuffer) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __ISQLServerErrorInfo_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IRowsetFastLoad_INTERFACE_DEFINED__
 | |
| #define __IRowsetFastLoad_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface IRowsetFastLoad */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_IRowsetFastLoad;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("5CF4CA13-EF21-11d0-97E7-00C04FC2AD98")
 | |
|     IRowsetFastLoad : public IUnknown
 | |
|     {
 | |
|     public:
 | |
|         virtual HRESULT STDMETHODCALLTYPE InsertRow( 
 | |
|             /* [in] */ HACCESSOR hAccessor,
 | |
|             /* [in] */ void *pData) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE Commit( 
 | |
|             /* [in] */ BOOL fDone) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct IRowsetFastLoadVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             IRowsetFastLoad * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             IRowsetFastLoad * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             IRowsetFastLoad * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *InsertRow )( 
 | |
|             IRowsetFastLoad * This,
 | |
|             /* [in] */ HACCESSOR hAccessor,
 | |
|             /* [in] */ void *pData);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *Commit )( 
 | |
|             IRowsetFastLoad * This,
 | |
|             /* [in] */ BOOL fDone);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } IRowsetFastLoadVtbl;
 | |
| 
 | |
|     interface IRowsetFastLoad
 | |
|     {
 | |
|         CONST_VTBL struct IRowsetFastLoadVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define IRowsetFastLoad_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define IRowsetFastLoad_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define IRowsetFastLoad_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define IRowsetFastLoad_InsertRow(This,hAccessor,pData)	\
 | |
|     ( (This)->lpVtbl -> InsertRow(This,hAccessor,pData) ) 
 | |
| 
 | |
| #define IRowsetFastLoad_Commit(This,fDone)	\
 | |
|     ( (This)->lpVtbl -> Commit(This,fDone) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __IRowsetFastLoad_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| /* interface __MIDL_itf_sqlncli_0000_0004 */
 | |
| /* [local] */ 
 | |
| 
 | |
| #include <pshpack8.h>    // 8-byte structure packing
 | |
| 
 | |
| typedef struct tagDBTIME2
 | |
|     {
 | |
|     USHORT hour;
 | |
|     USHORT minute;
 | |
|     USHORT second;
 | |
|     ULONG fraction;
 | |
|     } 	DBTIME2;
 | |
| 
 | |
| typedef struct tagDBTIMESTAMPOFFSET
 | |
|     {
 | |
|     SHORT year;
 | |
|     USHORT month;
 | |
|     USHORT day;
 | |
|     USHORT hour;
 | |
|     USHORT minute;
 | |
|     USHORT second;
 | |
|     ULONG fraction;
 | |
|     SHORT timezone_hour;
 | |
|     SHORT timezone_minute;
 | |
|     } 	DBTIMESTAMPOFFSET;
 | |
| 
 | |
| #include <poppack.h>     // restore original structure packing
 | |
| 
 | |
| struct SSVARIANT
 | |
|     {
 | |
|     SSVARTYPE vt;
 | |
|     DWORD dwReserved1;
 | |
|     DWORD dwReserved2;
 | |
|     union 
 | |
|         {
 | |
|         BYTE bTinyIntVal;
 | |
|         SHORT sShortIntVal;
 | |
|         LONG lIntVal;
 | |
|         LONGLONG llBigIntVal;
 | |
|         FLOAT fltRealVal;
 | |
|         DOUBLE dblFloatVal;
 | |
|         CY cyMoneyVal;
 | |
|         VARIANT_BOOL fBitVal;
 | |
|         BYTE rgbGuidVal[ 16 ];
 | |
|         DB_NUMERIC numNumericVal;
 | |
|         DBDATE dDateVal;
 | |
|         DBTIMESTAMP tsDateTimeVal;
 | |
|         struct _Time2Val
 | |
|             {
 | |
|             DBTIME2 tTime2Val;
 | |
|             BYTE bScale;
 | |
|             } 	Time2Val;
 | |
|         struct _DateTimeVal
 | |
|             {
 | |
|             DBTIMESTAMP tsDateTimeVal;
 | |
|             BYTE bScale;
 | |
|             } 	DateTimeVal;
 | |
|         struct _DateTimeOffsetVal
 | |
|             {
 | |
|             DBTIMESTAMPOFFSET tsoDateTimeOffsetVal;
 | |
|             BYTE bScale;
 | |
|             } 	DateTimeOffsetVal;
 | |
|         struct _NCharVal
 | |
|             {
 | |
|             SHORT sActualLength;
 | |
|             SHORT sMaxLength;
 | |
|             WCHAR *pwchNCharVal;
 | |
|             BYTE rgbReserved[ 5 ];
 | |
|             DWORD dwReserved;
 | |
|             WCHAR *pwchReserved;
 | |
|             } 	NCharVal;
 | |
|         struct _CharVal
 | |
|             {
 | |
|             SHORT sActualLength;
 | |
|             SHORT sMaxLength;
 | |
|             CHAR *pchCharVal;
 | |
|             BYTE rgbReserved[ 5 ];
 | |
|             DWORD dwReserved;
 | |
|             WCHAR *pwchReserved;
 | |
|             } 	CharVal;
 | |
|         struct _BinaryVal
 | |
|             {
 | |
|             SHORT sActualLength;
 | |
|             SHORT sMaxLength;
 | |
|             BYTE *prgbBinaryVal;
 | |
|             DWORD dwReserved;
 | |
|             } 	BinaryVal;
 | |
|         struct _UnknownType
 | |
|             {
 | |
|             DWORD dwActualLength;
 | |
|             BYTE rgMetadata[ 16 ];
 | |
|             BYTE *pUnknownData;
 | |
|             } 	UnknownType;
 | |
|         struct _BLOBType
 | |
|             {
 | |
|             DBOBJECT dbobj;
 | |
|             IUnknown *pUnk;
 | |
|             } 	BLOBType;
 | |
|         } 	;
 | |
|     } ;
 | |
| typedef DWORD LOCKMODE;
 | |
| 
 | |
| 
 | |
| enum LOCKMODEENUM
 | |
|     {	LOCKMODE_INVALID	= 0,
 | |
| 	LOCKMODE_EXCLUSIVE	= ( LOCKMODE_INVALID + 1 ) ,
 | |
| 	LOCKMODE_SHARED	= ( LOCKMODE_EXCLUSIVE + 1 ) 
 | |
|     } ;
 | |
| 
 | |
| 
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0004_v0_0_c_ifspec;
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0004_v0_0_s_ifspec;
 | |
| 
 | |
| #ifndef __ISchemaLock_INTERFACE_DEFINED__
 | |
| #define __ISchemaLock_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface ISchemaLock */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_ISchemaLock;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("4C2389FB-2511-11d4-B258-00C04F7971CE")
 | |
|     ISchemaLock : public IUnknown
 | |
|     {
 | |
|     public:
 | |
|         virtual HRESULT STDMETHODCALLTYPE GetSchemaLock( 
 | |
|             /* [in] */ DBID *pTableID,
 | |
|             /* [in] */ LOCKMODE lmMode,
 | |
|             /* [out] */ HANDLE *phLockHandle,
 | |
|             /* [out] */ ULONGLONG *pTableVersion) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE ReleaseSchemaLock( 
 | |
|             /* [in] */ HANDLE hLockHandle) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct ISchemaLockVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             ISchemaLock * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             ISchemaLock * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             ISchemaLock * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *GetSchemaLock )( 
 | |
|             ISchemaLock * This,
 | |
|             /* [in] */ DBID *pTableID,
 | |
|             /* [in] */ LOCKMODE lmMode,
 | |
|             /* [out] */ HANDLE *phLockHandle,
 | |
|             /* [out] */ ULONGLONG *pTableVersion);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *ReleaseSchemaLock )( 
 | |
|             ISchemaLock * This,
 | |
|             /* [in] */ HANDLE hLockHandle);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } ISchemaLockVtbl;
 | |
| 
 | |
|     interface ISchemaLock
 | |
|     {
 | |
|         CONST_VTBL struct ISchemaLockVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define ISchemaLock_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define ISchemaLock_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define ISchemaLock_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define ISchemaLock_GetSchemaLock(This,pTableID,lmMode,phLockHandle,pTableVersion)	\
 | |
|     ( (This)->lpVtbl -> GetSchemaLock(This,pTableID,lmMode,phLockHandle,pTableVersion) ) 
 | |
| 
 | |
| #define ISchemaLock_ReleaseSchemaLock(This,hLockHandle)	\
 | |
|     ( (This)->lpVtbl -> ReleaseSchemaLock(This,hLockHandle) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __ISchemaLock_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IBCPSession_INTERFACE_DEFINED__
 | |
| #define __IBCPSession_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface IBCPSession */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_IBCPSession;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("88352D80-42D1-42f0-A170-AB0F8B45B939")
 | |
|     IBCPSession : public IUnknown
 | |
|     {
 | |
|     public:
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPColFmt( 
 | |
|             /* [in] */ DBORDINAL idxUserDataCol,
 | |
|             /* [in] */ int eUserDataType,
 | |
|             /* [in] */ int cbIndicator,
 | |
|             /* [in] */ int cbUserData,
 | |
|             /* [size_is][in] */ BYTE *pbUserDataTerm,
 | |
|             /* [in] */ int cbUserDataTerm,
 | |
|             /* [in] */ DBORDINAL idxServerCol) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPColumns( 
 | |
|             /* [in] */ DBCOUNTITEM nColumns) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPControl( 
 | |
|             /* [in] */ int eOption,
 | |
|             /* [in] */ void *iValue) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPDone( void) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPExec( 
 | |
|             /* [out] */ DBROWCOUNT *pRowsCopied) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPInit( 
 | |
|             /* [string][in] */ const wchar_t *pwszTable,
 | |
|             /* [string][in] */ const wchar_t *pwszDataFile,
 | |
|             /* [string][in] */ const wchar_t *pwszErrorFile,
 | |
|             /* [in] */ int eDirection) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPReadFmt( 
 | |
|             /* [string][in] */ const wchar_t *pwszFormatFile) = 0;
 | |
|         
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPWriteFmt( 
 | |
|             /* [string][in] */ const wchar_t *pwszFormatFile) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct IBCPSessionVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             IBCPSession * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             IBCPSession * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             IBCPSession * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPColFmt )( 
 | |
|             IBCPSession * This,
 | |
|             /* [in] */ DBORDINAL idxUserDataCol,
 | |
|             /* [in] */ int eUserDataType,
 | |
|             /* [in] */ int cbIndicator,
 | |
|             /* [in] */ int cbUserData,
 | |
|             /* [size_is][in] */ BYTE *pbUserDataTerm,
 | |
|             /* [in] */ int cbUserDataTerm,
 | |
|             /* [in] */ DBORDINAL idxServerCol);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPColumns )( 
 | |
|             IBCPSession * This,
 | |
|             /* [in] */ DBCOUNTITEM nColumns);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPControl )( 
 | |
|             IBCPSession * This,
 | |
|             /* [in] */ int eOption,
 | |
|             /* [in] */ void *iValue);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPDone )( 
 | |
|             IBCPSession * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPExec )( 
 | |
|             IBCPSession * This,
 | |
|             /* [out] */ DBROWCOUNT *pRowsCopied);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPInit )( 
 | |
|             IBCPSession * This,
 | |
|             /* [string][in] */ const wchar_t *pwszTable,
 | |
|             /* [string][in] */ const wchar_t *pwszDataFile,
 | |
|             /* [string][in] */ const wchar_t *pwszErrorFile,
 | |
|             /* [in] */ int eDirection);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPReadFmt )( 
 | |
|             IBCPSession * This,
 | |
|             /* [string][in] */ const wchar_t *pwszFormatFile);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPWriteFmt )( 
 | |
|             IBCPSession * This,
 | |
|             /* [string][in] */ const wchar_t *pwszFormatFile);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } IBCPSessionVtbl;
 | |
| 
 | |
|     interface IBCPSession
 | |
|     {
 | |
|         CONST_VTBL struct IBCPSessionVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define IBCPSession_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define IBCPSession_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define IBCPSession_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define IBCPSession_BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol)	\
 | |
|     ( (This)->lpVtbl -> BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol) ) 
 | |
| 
 | |
| #define IBCPSession_BCPColumns(This,nColumns)	\
 | |
|     ( (This)->lpVtbl -> BCPColumns(This,nColumns) ) 
 | |
| 
 | |
| #define IBCPSession_BCPControl(This,eOption,iValue)	\
 | |
|     ( (This)->lpVtbl -> BCPControl(This,eOption,iValue) ) 
 | |
| 
 | |
| #define IBCPSession_BCPDone(This)	\
 | |
|     ( (This)->lpVtbl -> BCPDone(This) ) 
 | |
| 
 | |
| #define IBCPSession_BCPExec(This,pRowsCopied)	\
 | |
|     ( (This)->lpVtbl -> BCPExec(This,pRowsCopied) ) 
 | |
| 
 | |
| #define IBCPSession_BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection)	\
 | |
|     ( (This)->lpVtbl -> BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection) ) 
 | |
| 
 | |
| #define IBCPSession_BCPReadFmt(This,pwszFormatFile)	\
 | |
|     ( (This)->lpVtbl -> BCPReadFmt(This,pwszFormatFile) ) 
 | |
| 
 | |
| #define IBCPSession_BCPWriteFmt(This,pwszFormatFile)	\
 | |
|     ( (This)->lpVtbl -> BCPWriteFmt(This,pwszFormatFile) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __IBCPSession_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IBCPSession2_INTERFACE_DEFINED__
 | |
| #define __IBCPSession2_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface IBCPSession2 */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_IBCPSession2;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("AD79D3B6-59DD-46a3-BFC6-E62A65FF3523")
 | |
|     IBCPSession2 : public IBCPSession
 | |
|     {
 | |
|     public:
 | |
|         virtual HRESULT STDMETHODCALLTYPE BCPSetBulkMode( 
 | |
|             /* [in] */ int property,
 | |
|             /* [size_is][in] */ void *pField,
 | |
|             /* [in] */ int cbField,
 | |
|             /* [size_is][in] */ void *pRow,
 | |
|             /* [in] */ int cbRow) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct IBCPSession2Vtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             IBCPSession2 * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             IBCPSession2 * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPColFmt )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [in] */ DBORDINAL idxUserDataCol,
 | |
|             /* [in] */ int eUserDataType,
 | |
|             /* [in] */ int cbIndicator,
 | |
|             /* [in] */ int cbUserData,
 | |
|             /* [size_is][in] */ BYTE *pbUserDataTerm,
 | |
|             /* [in] */ int cbUserDataTerm,
 | |
|             /* [in] */ DBORDINAL idxServerCol);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPColumns )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [in] */ DBCOUNTITEM nColumns);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPControl )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [in] */ int eOption,
 | |
|             /* [in] */ void *iValue);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPDone )( 
 | |
|             IBCPSession2 * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPExec )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [out] */ DBROWCOUNT *pRowsCopied);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPInit )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [string][in] */ const wchar_t *pwszTable,
 | |
|             /* [string][in] */ const wchar_t *pwszDataFile,
 | |
|             /* [string][in] */ const wchar_t *pwszErrorFile,
 | |
|             /* [in] */ int eDirection);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPReadFmt )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [string][in] */ const wchar_t *pwszFormatFile);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPWriteFmt )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [string][in] */ const wchar_t *pwszFormatFile);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *BCPSetBulkMode )( 
 | |
|             IBCPSession2 * This,
 | |
|             /* [in] */ int property,
 | |
|             /* [size_is][in] */ void *pField,
 | |
|             /* [in] */ int cbField,
 | |
|             /* [size_is][in] */ void *pRow,
 | |
|             /* [in] */ int cbRow);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } IBCPSession2Vtbl;
 | |
| 
 | |
|     interface IBCPSession2
 | |
|     {
 | |
|         CONST_VTBL struct IBCPSession2Vtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define IBCPSession2_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define IBCPSession2_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define IBCPSession2_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define IBCPSession2_BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol)	\
 | |
|     ( (This)->lpVtbl -> BCPColFmt(This,idxUserDataCol,eUserDataType,cbIndicator,cbUserData,pbUserDataTerm,cbUserDataTerm,idxServerCol) ) 
 | |
| 
 | |
| #define IBCPSession2_BCPColumns(This,nColumns)	\
 | |
|     ( (This)->lpVtbl -> BCPColumns(This,nColumns) ) 
 | |
| 
 | |
| #define IBCPSession2_BCPControl(This,eOption,iValue)	\
 | |
|     ( (This)->lpVtbl -> BCPControl(This,eOption,iValue) ) 
 | |
| 
 | |
| #define IBCPSession2_BCPDone(This)	\
 | |
|     ( (This)->lpVtbl -> BCPDone(This) ) 
 | |
| 
 | |
| #define IBCPSession2_BCPExec(This,pRowsCopied)	\
 | |
|     ( (This)->lpVtbl -> BCPExec(This,pRowsCopied) ) 
 | |
| 
 | |
| #define IBCPSession2_BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection)	\
 | |
|     ( (This)->lpVtbl -> BCPInit(This,pwszTable,pwszDataFile,pwszErrorFile,eDirection) ) 
 | |
| 
 | |
| #define IBCPSession2_BCPReadFmt(This,pwszFormatFile)	\
 | |
|     ( (This)->lpVtbl -> BCPReadFmt(This,pwszFormatFile) ) 
 | |
| 
 | |
| #define IBCPSession2_BCPWriteFmt(This,pwszFormatFile)	\
 | |
|     ( (This)->lpVtbl -> BCPWriteFmt(This,pwszFormatFile) ) 
 | |
| 
 | |
| 
 | |
| #define IBCPSession2_BCPSetBulkMode(This,property,pField,cbField,pRow,cbRow)	\
 | |
|     ( (This)->lpVtbl -> BCPSetBulkMode(This,property,pField,cbField,pRow,cbRow) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __IBCPSession2_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| /* interface __MIDL_itf_sqlncli_0000_0007 */
 | |
| /* [local] */ 
 | |
| 
 | |
| 
 | |
| #endif //_SQLOLEDB_H_
 | |
| 
 | |
| #define ISOLATIONLEVEL_SNAPSHOT          ((ISOLATIONLEVEL)(0x01000000)) // Changes made in other transactions can not be seen.
 | |
| 
 | |
| #define DBPROPVAL_TI_SNAPSHOT            0x01000000L
 | |
| 
 | |
| 
 | |
| 
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0007_v0_0_c_ifspec;
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0007_v0_0_s_ifspec;
 | |
| 
 | |
| #ifndef __ISSAbort_INTERFACE_DEFINED__
 | |
| #define __ISSAbort_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface ISSAbort */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_ISSAbort;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("5CF4CA15-EF21-11d0-97E7-00C04FC2AD98")
 | |
|     ISSAbort : public IUnknown
 | |
|     {
 | |
|     public:
 | |
|         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct ISSAbortVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             ISSAbort * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             ISSAbort * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             ISSAbort * This);
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *Abort )( 
 | |
|             ISSAbort * This);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } ISSAbortVtbl;
 | |
| 
 | |
|     interface ISSAbort
 | |
|     {
 | |
|         CONST_VTBL struct ISSAbortVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define ISSAbort_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define ISSAbort_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define ISSAbort_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define ISSAbort_Abort(This)	\
 | |
|     ( (This)->lpVtbl -> Abort(This) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __ISSAbort_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| /* interface __MIDL_itf_sqlncli_0000_0008 */
 | |
| /* [local] */ 
 | |
| 
 | |
| 
 | |
| enum DBBINDFLAGENUM90
 | |
|     {	DBBINDFLAG_OBJECT	= 0x2
 | |
|     } ;
 | |
| 
 | |
| enum SSACCESSORFLAGS
 | |
|     {	SSACCESSOR_ROWDATA	= 0x100
 | |
|     } ;
 | |
| 
 | |
| enum DBPROPFLAGSENUM90
 | |
|     {	DBPROPFLAGS_PARAMETER	= 0x10000
 | |
|     } ;
 | |
| typedef struct tagSSPARAMPROPS
 | |
|     {
 | |
|     DBORDINAL iOrdinal;
 | |
|     ULONG cPropertySets;
 | |
|     DBPROPSET *rgPropertySets;
 | |
|     } 	SSPARAMPROPS;
 | |
| 
 | |
| 
 | |
| 
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0008_v0_0_c_ifspec;
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0008_v0_0_s_ifspec;
 | |
| 
 | |
| #ifndef __ISSCommandWithParameters_INTERFACE_DEFINED__
 | |
| #define __ISSCommandWithParameters_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface ISSCommandWithParameters */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_ISSCommandWithParameters;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("eec30162-6087-467c-b995-7c523ce96561")
 | |
|     ISSCommandWithParameters : public ICommandWithParameters
 | |
|     {
 | |
|     public:
 | |
|         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetParameterProperties( 
 | |
|             /* [out][in] */ DB_UPARAMS *pcParams,
 | |
|             /* [size_is][size_is][out] */ SSPARAMPROPS **prgParamProperties) = 0;
 | |
|         
 | |
|         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetParameterProperties( 
 | |
|             /* [in] */ DB_UPARAMS cParams,
 | |
|             /* [size_is][unique][in] */ SSPARAMPROPS rgParamProperties[  ]) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct ISSCommandWithParametersVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             ISSCommandWithParameters * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             ISSCommandWithParameters * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             ISSCommandWithParameters * This);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetParameterInfo )( 
 | |
|             ISSCommandWithParameters * This,
 | |
|             /* [out][in] */ DB_UPARAMS *pcParams,
 | |
|             /* [size_is][size_is][out] */ DBPARAMINFO **prgParamInfo,
 | |
|             /* [out] */ OLECHAR **ppNamesBuffer);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *MapParameterNames )( 
 | |
|             ISSCommandWithParameters * This,
 | |
|             /* [in] */ DB_UPARAMS cParamNames,
 | |
|             /* [size_is][in] */ const OLECHAR *rgParamNames[  ],
 | |
|             /* [size_is][out] */ DB_LPARAMS rgParamOrdinals[  ]);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetParameterInfo )( 
 | |
|             ISSCommandWithParameters * This,
 | |
|             /* [in] */ DB_UPARAMS cParams,
 | |
|             /* [size_is][unique][in] */ const DB_UPARAMS rgParamOrdinals[  ],
 | |
|             /* [size_is][unique][in] */ const DBPARAMBINDINFO rgParamBindInfo[  ]);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetParameterProperties )( 
 | |
|             ISSCommandWithParameters * This,
 | |
|             /* [out][in] */ DB_UPARAMS *pcParams,
 | |
|             /* [size_is][size_is][out] */ SSPARAMPROPS **prgParamProperties);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetParameterProperties )( 
 | |
|             ISSCommandWithParameters * This,
 | |
|             /* [in] */ DB_UPARAMS cParams,
 | |
|             /* [size_is][unique][in] */ SSPARAMPROPS rgParamProperties[  ]);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } ISSCommandWithParametersVtbl;
 | |
| 
 | |
|     interface ISSCommandWithParameters
 | |
|     {
 | |
|         CONST_VTBL struct ISSCommandWithParametersVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define ISSCommandWithParameters_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define ISSCommandWithParameters_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define ISSCommandWithParameters_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define ISSCommandWithParameters_GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer)	\
 | |
|     ( (This)->lpVtbl -> GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer) ) 
 | |
| 
 | |
| #define ISSCommandWithParameters_MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals)	\
 | |
|     ( (This)->lpVtbl -> MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals) ) 
 | |
| 
 | |
| #define ISSCommandWithParameters_SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo)	\
 | |
|     ( (This)->lpVtbl -> SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo) ) 
 | |
| 
 | |
| 
 | |
| #define ISSCommandWithParameters_GetParameterProperties(This,pcParams,prgParamProperties)	\
 | |
|     ( (This)->lpVtbl -> GetParameterProperties(This,pcParams,prgParamProperties) ) 
 | |
| 
 | |
| #define ISSCommandWithParameters_SetParameterProperties(This,cParams,rgParamProperties)	\
 | |
|     ( (This)->lpVtbl -> SetParameterProperties(This,cParams,rgParamProperties) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __ISSCommandWithParameters_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __IDBAsynchStatus_INTERFACE_DEFINED__
 | |
| #define __IDBAsynchStatus_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface IDBAsynchStatus */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_IDBAsynchStatus;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("0c733a95-2a1c-11ce-ade5-00aa0044773d")
 | |
|     IDBAsynchStatus : public IUnknown
 | |
|     {
 | |
|     public:
 | |
|         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Abort( 
 | |
|             /* [in] */ HCHAPTER hChapter,
 | |
|             /* [in] */ DBASYNCHOP eOperation) = 0;
 | |
|         
 | |
|         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetStatus( 
 | |
|             /* [in] */ HCHAPTER hChapter,
 | |
|             /* [in] */ DBASYNCHOP eOperation,
 | |
|             /* [out] */ DBCOUNTITEM *pulProgress,
 | |
|             /* [out] */ DBCOUNTITEM *pulProgressMax,
 | |
|             /* [out] */ DBASYNCHPHASE *peAsynchPhase,
 | |
|             /* [out] */ LPOLESTR *ppwszStatusText) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct IDBAsynchStatusVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             IDBAsynchStatus * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             IDBAsynchStatus * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             IDBAsynchStatus * This);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Abort )( 
 | |
|             IDBAsynchStatus * This,
 | |
|             /* [in] */ HCHAPTER hChapter,
 | |
|             /* [in] */ DBASYNCHOP eOperation);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetStatus )( 
 | |
|             IDBAsynchStatus * This,
 | |
|             /* [in] */ HCHAPTER hChapter,
 | |
|             /* [in] */ DBASYNCHOP eOperation,
 | |
|             /* [out] */ DBCOUNTITEM *pulProgress,
 | |
|             /* [out] */ DBCOUNTITEM *pulProgressMax,
 | |
|             /* [out] */ DBASYNCHPHASE *peAsynchPhase,
 | |
|             /* [out] */ LPOLESTR *ppwszStatusText);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } IDBAsynchStatusVtbl;
 | |
| 
 | |
|     interface IDBAsynchStatus
 | |
|     {
 | |
|         CONST_VTBL struct IDBAsynchStatusVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define IDBAsynchStatus_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define IDBAsynchStatus_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define IDBAsynchStatus_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define IDBAsynchStatus_Abort(This,hChapter,eOperation)	\
 | |
|     ( (This)->lpVtbl -> Abort(This,hChapter,eOperation) ) 
 | |
| 
 | |
| #define IDBAsynchStatus_GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText)	\
 | |
|     ( (This)->lpVtbl -> GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| /* [call_as] */ HRESULT STDMETHODCALLTYPE IDBAsynchStatus_RemoteAbort_Proxy( 
 | |
|     IDBAsynchStatus * This,
 | |
|     /* [in] */ HCHAPTER hChapter,
 | |
|     /* [in] */ DBASYNCHOP eOperation,
 | |
|     /* [out] */ IErrorInfo **ppErrorInfoRem);
 | |
| 
 | |
| 
 | |
| void __RPC_STUB IDBAsynchStatus_RemoteAbort_Stub(
 | |
|     IRpcStubBuffer *This,
 | |
|     IRpcChannelBuffer *_pRpcChannelBuffer,
 | |
|     PRPC_MESSAGE _pRpcMessage,
 | |
|     DWORD *_pdwStubPhase);
 | |
| 
 | |
| 
 | |
| /* [call_as] */ HRESULT STDMETHODCALLTYPE IDBAsynchStatus_RemoteGetStatus_Proxy( 
 | |
|     IDBAsynchStatus * This,
 | |
|     /* [in] */ HCHAPTER hChapter,
 | |
|     /* [in] */ DBASYNCHOP eOperation,
 | |
|     /* [unique][out][in] */ DBCOUNTITEM *pulProgress,
 | |
|     /* [unique][out][in] */ DBCOUNTITEM *pulProgressMax,
 | |
|     /* [unique][out][in] */ DBASYNCHPHASE *peAsynchPhase,
 | |
|     /* [unique][out][in] */ LPOLESTR *ppwszStatusText,
 | |
|     /* [out] */ IErrorInfo **ppErrorInfoRem);
 | |
| 
 | |
| 
 | |
| void __RPC_STUB IDBAsynchStatus_RemoteGetStatus_Stub(
 | |
|     IRpcStubBuffer *This,
 | |
|     IRpcChannelBuffer *_pRpcChannelBuffer,
 | |
|     PRPC_MESSAGE _pRpcMessage,
 | |
|     DWORD *_pdwStubPhase);
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __IDBAsynchStatus_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| #ifndef __ISSAsynchStatus_INTERFACE_DEFINED__
 | |
| #define __ISSAsynchStatus_INTERFACE_DEFINED__
 | |
| 
 | |
| /* interface ISSAsynchStatus */
 | |
| /* [unique][uuid][object][local] */ 
 | |
| 
 | |
| 
 | |
| EXTERN_C const IID IID_ISSAsynchStatus;
 | |
| 
 | |
| #if defined(__cplusplus) && !defined(CINTERFACE)
 | |
|     
 | |
|     MIDL_INTERFACE("1FF1F743-8BB0-4c00-ACC4-C10E43B08FC1")
 | |
|     ISSAsynchStatus : public IDBAsynchStatus
 | |
|     {
 | |
|     public:
 | |
|         virtual /* [local] */ HRESULT STDMETHODCALLTYPE WaitForAsynchCompletion( 
 | |
|             /* [in] */ DWORD dwMillisecTimeOut) = 0;
 | |
|         
 | |
|     };
 | |
|     
 | |
| #else 	/* C style interface */
 | |
| 
 | |
|     typedef struct ISSAsynchStatusVtbl
 | |
|     {
 | |
|         BEGIN_INTERFACE
 | |
|         
 | |
|         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 | |
|             ISSAsynchStatus * This,
 | |
|             /* [in] */ REFIID riid,
 | |
|             /* [annotation][iid_is][out] */ 
 | |
|             __RPC__deref_out  void **ppvObject);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *AddRef )( 
 | |
|             ISSAsynchStatus * This);
 | |
|         
 | |
|         ULONG ( STDMETHODCALLTYPE *Release )( 
 | |
|             ISSAsynchStatus * This);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Abort )( 
 | |
|             ISSAsynchStatus * This,
 | |
|             /* [in] */ HCHAPTER hChapter,
 | |
|             /* [in] */ DBASYNCHOP eOperation);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetStatus )( 
 | |
|             ISSAsynchStatus * This,
 | |
|             /* [in] */ HCHAPTER hChapter,
 | |
|             /* [in] */ DBASYNCHOP eOperation,
 | |
|             /* [out] */ DBCOUNTITEM *pulProgress,
 | |
|             /* [out] */ DBCOUNTITEM *pulProgressMax,
 | |
|             /* [out] */ DBASYNCHPHASE *peAsynchPhase,
 | |
|             /* [out] */ LPOLESTR *ppwszStatusText);
 | |
|         
 | |
|         /* [local] */ HRESULT ( STDMETHODCALLTYPE *WaitForAsynchCompletion )( 
 | |
|             ISSAsynchStatus * This,
 | |
|             /* [in] */ DWORD dwMillisecTimeOut);
 | |
|         
 | |
|         END_INTERFACE
 | |
|     } ISSAsynchStatusVtbl;
 | |
| 
 | |
|     interface ISSAsynchStatus
 | |
|     {
 | |
|         CONST_VTBL struct ISSAsynchStatusVtbl *lpVtbl;
 | |
|     };
 | |
| 
 | |
|     
 | |
| 
 | |
| #ifdef COBJMACROS
 | |
| 
 | |
| 
 | |
| #define ISSAsynchStatus_QueryInterface(This,riid,ppvObject)	\
 | |
|     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 | |
| 
 | |
| #define ISSAsynchStatus_AddRef(This)	\
 | |
|     ( (This)->lpVtbl -> AddRef(This) ) 
 | |
| 
 | |
| #define ISSAsynchStatus_Release(This)	\
 | |
|     ( (This)->lpVtbl -> Release(This) ) 
 | |
| 
 | |
| 
 | |
| #define ISSAsynchStatus_Abort(This,hChapter,eOperation)	\
 | |
|     ( (This)->lpVtbl -> Abort(This,hChapter,eOperation) ) 
 | |
| 
 | |
| #define ISSAsynchStatus_GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText)	\
 | |
|     ( (This)->lpVtbl -> GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText) ) 
 | |
| 
 | |
| 
 | |
| #define ISSAsynchStatus_WaitForAsynchCompletion(This,dwMillisecTimeOut)	\
 | |
|     ( (This)->lpVtbl -> WaitForAsynchCompletion(This,dwMillisecTimeOut) ) 
 | |
| 
 | |
| #endif /* COBJMACROS */
 | |
| 
 | |
| 
 | |
| #endif 	/* C style interface */
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif 	/* __ISSAsynchStatus_INTERFACE_DEFINED__ */
 | |
| 
 | |
| 
 | |
| /* interface __MIDL_itf_sqlncli_0000_0011 */
 | |
| /* [local] */ 
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // Values for STATUS bitmask for DBSCHEMA_TABLES & DBSCHEMA_TABLES_INFO
 | |
| #define TABLE_HAS_UPDATE_INSTEAD_OF_TRIGGER     0x00000001 //table has IOT defined
 | |
| #define TABLE_HAS_DELETE_INSTEAD_OF_TRIGGER     0x00000002 //table has IOT defined
 | |
| #define TABLE_HAS_INSERT_INSTEAD_OF_TRIGGER     0x00000004 //table has IOT defined
 | |
| #define TABLE_HAS_AFTER_UPDATE_TRIGGER          0x00000008 //table has update trigger
 | |
| #define TABLE_HAS_AFTER_DELETE_TRIGGER          0x00000010 //table has delete trigger
 | |
| #define TABLE_HAS_AFTER_INSERT_TRIGGER          0x00000020 //table has insert trigger
 | |
| #define TABLE_HAS_CASCADE_UPDATE                0x00000040 //table has cascade update
 | |
| #define TABLE_HAS_CASCADE_DELETE                0x00000080 //table has cascade delete
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROP_INIT_GENERALTIMEOUT
 | |
| #if (OLEDBVER >= 0x0210)
 | |
| #define DBPROP_INIT_GENERALTIMEOUT      0x11cL
 | |
| #endif
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERDATASOURCE
 | |
| #define SSPROP_ENABLEFASTLOAD           2
 | |
| #define SSPROP_ENABLEBULKCOPY           3
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERDATASOURCEINFO
 | |
| #define SSPROP_UNICODELCID                       2
 | |
| #define SSPROP_UNICODECOMPARISONSTYLE            3
 | |
| #define SSPROP_COLUMNLEVELCOLLATION              4
 | |
| #define SSPROP_CHARACTERSET                      5
 | |
| #define SSPROP_SORTORDER                         6
 | |
| #define SSPROP_CURRENTCOLLATION                  7
 | |
| #define SSPROP_INTEGRATEDAUTHENTICATIONMETHOD    8
 | |
| #define SSPROP_MUTUALLYAUTHENTICATED             9
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERDBINIT
 | |
| #define SSPROP_INIT_CURRENTLANGUAGE              4
 | |
| #define SSPROP_INIT_NETWORKADDRESS               5
 | |
| #define SSPROP_INIT_NETWORKLIBRARY               6
 | |
| #define SSPROP_INIT_USEPROCFORPREP               7
 | |
| #define SSPROP_INIT_AUTOTRANSLATE                8
 | |
| #define SSPROP_INIT_PACKETSIZE                   9
 | |
| #define SSPROP_INIT_APPNAME                      10
 | |
| #define SSPROP_INIT_WSID                         11
 | |
| #define SSPROP_INIT_FILENAME                     12
 | |
| #define SSPROP_INIT_ENCRYPT                      13
 | |
| #define SSPROP_AUTH_REPL_SERVER_NAME             14
 | |
| #define SSPROP_INIT_TAGCOLUMNCOLLATION           15
 | |
| #define SSPROP_INIT_MARSCONNECTION               16
 | |
| #define SSPROP_INIT_FAILOVERPARTNER              18
 | |
| #define SSPROP_AUTH_OLD_PASSWORD                 19
 | |
| #define SSPROP_INIT_DATATYPECOMPATIBILITY        20
 | |
| #define SSPROP_INIT_TRUST_SERVER_CERTIFICATE     21
 | |
| #define SSPROP_INIT_SERVERSPN                    22
 | |
| #define SSPROP_INIT_FAILOVERPARTNERSPN           23
 | |
| #define SSPROP_INIT_APPLICATIONINTENT            24
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Values for SSPROP_INIT_USEPROCFORPREP
 | |
| #define SSPROPVAL_USEPROCFORPREP_OFF        0
 | |
| #define SSPROPVAL_USEPROCFORPREP_ON         1
 | |
| #define SSPROPVAL_USEPROCFORPREP_ON_DROP    2
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Values for SSPROP_INIT_DATATYPECOMPATIBILITY
 | |
| #define SSPROPVAL_DATATYPECOMPATIBILITY_SQL2000  80
 | |
| #define SSPROPVAL_DATATYPECOMPATIBILITY_DEFAULT  0
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERSESSION
 | |
| #define SSPROP_QUOTEDCATALOGNAMES       2
 | |
| #define SSPROP_ALLOWNATIVEVARIANT       3
 | |
| #define SSPROP_SQLXMLXPROGID            4
 | |
| #define SSPROP_ASYNCH_BULKCOPY          5
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERROWSET
 | |
| #define SSPROP_MAXBLOBLENGTH            8
 | |
| #define SSPROP_FASTLOADOPTIONS          9
 | |
| #define SSPROP_FASTLOADKEEPNULLS        10
 | |
| #define SSPROP_FASTLOADKEEPIDENTITY     11
 | |
| #define SSPROP_CURSORAUTOFETCH          12
 | |
| #define SSPROP_DEFERPREPARE             13
 | |
| #define SSPROP_IRowsetFastLoad          14
 | |
| #define SSPROP_QP_NOTIFICATION_TIMEOUT  17
 | |
| #define SSPROP_QP_NOTIFICATION_MSGTEXT  18
 | |
| #define SSPROP_QP_NOTIFICATION_OPTIONS  19
 | |
| #define SSPROP_NOCOUNT_STATUS           20
 | |
| #define SSPROP_COMPUTE_ID               21
 | |
| #define SSPROP_COLUMN_ID                22
 | |
| #define SSPROP_COMPUTE_BYLIST           23
 | |
| #define SSPROP_ISSAsynchStatus          24
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Values for SSPROP_QP_NOTIFICATION_TIMEOUT
 | |
| #define SSPROPVAL_DEFAULT_NOTIFICATION_TIMEOUT  432000 /* in sec */
 | |
| #define SSPROPVAL_MAX_NOTIFICATION_TIMEOUT      0x7FFFFFFF /* in sec */
 | |
| #define MAX_NOTIFICATION_LEN                    2000 /* NVARCHAR [2000] for both ID & DELIVERY_QUEUE */
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERCOLUMN
 | |
| #define SSPROP_COL_COLLATIONNAME                         14
 | |
| #define SSPROP_COL_UDT_CATALOGNAME                       31
 | |
| #define SSPROP_COL_UDT_SCHEMANAME                        32
 | |
| #define SSPROP_COL_UDT_NAME                              33
 | |
| #define SSPROP_COL_XML_SCHEMACOLLECTION_CATALOGNAME      34
 | |
| #define SSPROP_COL_XML_SCHEMACOLLECTION_SCHEMANAME       35
 | |
| #define SSPROP_COL_XML_SCHEMACOLLECTIONNAME              36
 | |
| #define SSPROP_COL_COMPUTED                              37
 | |
| 
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERSTREAM
 | |
| #define SSPROP_STREAM_XMLROOT                            19
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERPARAMETER
 | |
| #define SSPROP_PARAM_XML_SCHEMACOLLECTION_CATALOGNAME    24
 | |
| #define SSPROP_PARAM_XML_SCHEMACOLLECTION_SCHEMANAME     25
 | |
| #define SSPROP_PARAM_XML_SCHEMACOLLECTIONNAME            26
 | |
| #define SSPROP_PARAM_UDT_CATALOGNAME                     27
 | |
| #define SSPROP_PARAM_UDT_SCHEMANAME                      28
 | |
| #define SSPROP_PARAM_UDT_NAME                            29
 | |
| #define SSPROP_PARAM_TYPE_CATALOGNAME                    38
 | |
| #define SSPROP_PARAM_TYPE_SCHEMANAME                     39
 | |
| #define SSPROP_PARAM_TYPE_TYPENAME                       40
 | |
| #define SSPROP_PARAM_TABLE_DEFAULT_COLUMNS               41
 | |
| #define SSPROP_PARAM_TABLE_COLUMN_SORT_ORDER             42
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // PropIds for DBPROPSET_SQLSERVERINDEX
 | |
| #define SSPROP_INDEX_XML         1
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| //
 | |
| #define BCP_TYPE_DEFAULT         0x00
 | |
| #define BCP_TYPE_SQLTEXT         0x23
 | |
| #define BCP_TYPE_SQLVARBINARY    0x25
 | |
| #define BCP_TYPE_SQLINTN         0x26
 | |
| #define BCP_TYPE_SQLVARCHAR      0x27
 | |
| #define BCP_TYPE_SQLBINARY       0x2d
 | |
| #define BCP_TYPE_SQLIMAGE        0x22
 | |
| #define BCP_TYPE_SQLCHARACTER    0x2f
 | |
| #define BCP_TYPE_SQLINT1         0x30
 | |
| #define BCP_TYPE_SQLBIT          0x32
 | |
| #define BCP_TYPE_SQLINT2         0x34
 | |
| #define BCP_TYPE_SQLINT4         0x38
 | |
| #define BCP_TYPE_SQLMONEY        0x3c
 | |
| #define BCP_TYPE_SQLDATETIME     0x3d
 | |
| #define BCP_TYPE_SQLFLT8         0x3e
 | |
| #define BCP_TYPE_SQLFLTN         0x6d
 | |
| #define BCP_TYPE_SQLMONEYN       0x6e
 | |
| #define BCP_TYPE_SQLDATETIMN     0x6f
 | |
| #define BCP_TYPE_SQLFLT4         0x3b
 | |
| #define BCP_TYPE_SQLMONEY4       0x7a
 | |
| #define BCP_TYPE_SQLDATETIM4     0x3a
 | |
| #define BCP_TYPE_SQLDECIMAL      0x6a
 | |
| #define BCP_TYPE_SQLNUMERIC      0x6c
 | |
| #define BCP_TYPE_SQLUNIQUEID     0x24
 | |
| #define BCP_TYPE_SQLBIGCHAR      0xaf
 | |
| #define BCP_TYPE_SQLBIGVARCHAR   0xa7
 | |
| #define BCP_TYPE_SQLBIGBINARY    0xad
 | |
| #define BCP_TYPE_SQLBIGVARBINARY 0xa5
 | |
| #define BCP_TYPE_SQLBITN         0x68
 | |
| #define BCP_TYPE_SQLNCHAR        0xef
 | |
| #define BCP_TYPE_SQLNVARCHAR     0xe7
 | |
| #define BCP_TYPE_SQLNTEXT        0x63
 | |
| #define BCP_TYPE_SQLDECIMALN     0x6a
 | |
| #define BCP_TYPE_SQLNUMERICN     0x6c
 | |
| #define BCP_TYPE_SQLINT8         0x7f
 | |
| #define BCP_TYPE_SQLVARIANT      0x62
 | |
| #define BCP_TYPE_SQLUDT          0xf0
 | |
| #define BCP_TYPE_SQLXML          0xf1
 | |
| #define BCP_TYPE_SQLDATE         0x28
 | |
| #define BCP_TYPE_SQLTIME         0x29
 | |
| #define BCP_TYPE_SQLDATETIME2    0x2a
 | |
| #define BCP_TYPE_SQLDATETIMEOFFSET 0x2b
 | |
| 
 | |
| #define BCP_DIRECTION_IN            1
 | |
| #define BCP_DIRECTION_OUT           2
 | |
| 
 | |
| #define BCP_OPTION_MAXERRS          1
 | |
| #define BCP_OPTION_FIRST            2
 | |
| #define BCP_OPTION_LAST             3
 | |
| #define BCP_OPTION_BATCH            4
 | |
| #define BCP_OPTION_KEEPNULLS        5
 | |
| #define BCP_OPTION_ABORT            6
 | |
| #define BCP_OPTION_KEEPIDENTITY     8
 | |
| #define BCP_OPTION_HINTSA           10
 | |
| #define BCP_OPTION_HINTSW           11
 | |
| #define BCP_OPTION_FILECP           12
 | |
| #define BCP_OPTION_UNICODEFILE      13
 | |
| #define BCP_OPTION_TEXTFILE         14
 | |
| #define BCP_OPTION_FILEFMT          15
 | |
| #define BCP_OPTION_FMTXML           16
 | |
| #define BCP_OPTION_FIRSTEX          17
 | |
| #define BCP_OPTION_LASTEX           18
 | |
| #define BCP_OPTION_ROWCOUNT         19
 | |
| #define BCP_OPTION_DELAYREADFMT     20
 | |
| 
 | |
| #define BCP_OUT_CHARACTER_MODE      0x01
 | |
| #define BCP_OUT_WIDE_CHARACTER_MODE 0x02
 | |
| #define BCP_OUT_NATIVE_TEXT_MODE    0x03
 | |
| #define BCP_OUT_NATIVE_MODE         0x04
 | |
| 
 | |
| #define BCP_FILECP_ACP              0
 | |
| #define BCP_FILECP_OEMCP            1
 | |
| #define BCP_FILECP_RAW              (-1)
 | |
| 
 | |
| #ifdef UNICODE
 | |
| #define BCP_OPTION_HINTS             BCP_OPTION_HINTSW
 | |
| #else
 | |
| #define BCP_OPTION_HINTS             BCP_OPTION_HINTSA
 | |
| #endif
 | |
| 
 | |
| #define BCP_PREFIX_DEFAULT           (-10)
 | |
| 
 | |
| #define BCP_LENGTH_NULL              (-1)
 | |
| #define BCP_LENGTH_VARIABLE          (-10)
 | |
| //
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // Provider-specific Class Ids
 | |
| //
 | |
| 
 | |
| #if SQLNCLI_VER >= 1100
 | |
| 
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI11                = {0x397C2819L,0x8272,0x4532,{0xAD,0x3A,0xFB,0x5E,0x43,0xBE,0xAA,0x39}};
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI11_ERROR          = {0xCA99D701L,0xE6E7,0x4db4,{0xA5,0xCC,0x81,0x54,0x1C,0x75,0x18,0x8A}};
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI11_ENUMERATOR     = {0x8F612DD2L,0x7E28,0x424f,{0xA2,0xFD,0xC2,0xEE,0xCC,0x31,0x4A,0xA2}};
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #if SQLNCLI_VER >= 1000
 | |
| 
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI10                = {0x8F4A6B68L,0x4F36,0x4e3c,{0xBE,0x81,0xBC,0x7C,0xA4,0xE9,0xC4,0x5C}};
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI10_ERROR          = {0x53F9C3BCL,0x275F,0x4FA5,{0xB3,0xE6,0x25,0xED,0xCD,0x51,0x20,0x23}};
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI10_ENUMERATOR     = {0x91E4F2A5L,0x1B07,0x45f6,{0x86,0xBF,0x92,0x03,0xC7,0xC7,0x2B,0xE3}};
 | |
| 
 | |
| #endif
 | |
| 
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI                = {0x85ecafccL,0xbdd9,0x4b03,{0x97,0xa8,0xfa,0x65,0xcb,0xe3,0x85,0x9b}};
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI_ERROR          = {0xe8bc0a7aL,0xea71,0x4263,{0x8c,0xda,0x94,0xf3,0x88,0xb8,0xed,0x10}};
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_SQLNCLI_ENUMERATOR     = {0x4898ad37L,0xfe05,0x42df,{0x92,0xf9,0xe8,0x57,0xdd,0xfe,0xe7,0x30}};
 | |
| extern const GUID OLEDBDECLSPEC _SQLNCLI_OLEDB_DEPRECATE_WARNING CLSID_ROWSET_TVP             = {0xc7ef28d5L,0x7bee,0x443f,{0x86,0xda,0xe3,0x98,0x4f,0xcd,0x4d,0xf9}};
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // Provider-specific Interface Ids
 | |
| //
 | |
| #ifndef  _SQLOLEDB_H_
 | |
| extern const GUID OLEDBDECLSPEC IID_ISQLServerErrorInfo      = {0x5cf4ca12,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| extern const GUID OLEDBDECLSPEC IID_IRowsetFastLoad          = {0x5cf4ca13,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| extern const GUID OLEDBDECLSPEC IID_IUMSInitialize           = {0x5cf4ca14,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| extern const GUID OLEDBDECLSPEC IID_ISchemaLock              = {0x4c2389fb,0x2511,0x11d4,{0xb2,0x58,0x0,0xc0,0x4f,0x79,0x71,0xce}};
 | |
| extern const GUID OLEDBDECLSPEC IID_ISQLXMLHelper            = {0xd22a7678L,0xf860,0x40cd,{0xa5,0x67,0x15,0x63,0xde,0xb4,0x6d,0x49}};
 | |
| #endif //_SQLOLEDB_H_
 | |
| extern const GUID OLEDBDECLSPEC IID_ISSAbort                 = {0x5cf4ca15,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| extern const GUID OLEDBDECLSPEC IID_IBCPSession              = {0x88352D80,0x42D1,0x42f0,{0xA1,0x70,0xAB,0x0F,0x8B,0x45,0xB9,0x39}};
 | |
| extern const GUID OLEDBDECLSPEC IID_IBCPSession2             = {0xad79d3b6,0x59dd,0x46a3,{0xbf,0xc6,0xe6,0x2a,0x65,0xff,0x35,0x23}};
 | |
| extern const GUID OLEDBDECLSPEC IID_ISSCommandWithParameters = {0xeec30162,0x6087,0x467c,{0xb9,0x95,0x7c,0x52,0x3c,0xe9,0x65,0x61}};
 | |
| extern const GUID OLEDBDECLSPEC IID_ISSAsynchStatus          = {0x1FF1F743,0x8BB0, 0x4c00,{0xAC,0xC4,0xC1,0x0E,0x43,0xB0,0x8F,0xC1}};
 | |
| 
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // Provider-specific schema rowsets
 | |
| //
 | |
| #ifndef  _SQLOLEDB_H_
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_LINKEDSERVERS               = {0x9093caf4,0x2eac,0x11d1,{0x98,0x9,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| #endif //_SQLOLEDB_H_
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_ASSEMBLIES              = {0x7c1112c8, 0xc2d3, 0x4f6e, {0x94, 0x9a, 0x98, 0x3d, 0x38, 0xa5, 0x8f, 0x46}};
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_ASSEMBLY_DEPENDENCIES   = {0xcb0f837b, 0x974c, 0x41b8, {0x90, 0x9d, 0x64, 0x9c, 0xaf, 0x45, 0xad, 0x2f}};
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_USER_TYPES              = {0xf1198bd8, 0xa424, 0x4ea3, {0x8d, 0x4c, 0x60, 0x7e, 0xee, 0x2b, 0xab, 0x60}};
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_XML_COLLECTIONS             = {0x56bfad8c, 0x6e8f, 0x480d, {0x91, 0xde, 0x35, 0x16, 0xd9, 0x9a, 0x5d, 0x10}};
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_TABLE_TYPES             = {0x4e26cde7, 0xaaa4, 0x41ed, {0x93, 0xdd, 0x37, 0x6e, 0x6d, 0x40, 0x9c, 0x17}};
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_TABLE_TYPE_PRIMARY_KEYS = {0x9738faea, 0x31e8, 0x4f63, {0xae,  0xd, 0x61, 0x33, 0x16, 0x41, 0x8c, 0xdd}};
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_SQL_TABLE_TYPE_COLUMNS      = {0xa663d94b, 0xddf7, 0x4a7f, {0xa5, 0x37, 0xd6, 0x1f, 0x12, 0x36, 0x5d, 0x7c}};
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_COLUMNS_EXTENDED            = {0x66462f01, 0x633a, 0x44d9, {0xb0, 0xd0, 0xfe, 0x66, 0xf2, 0x1a, 0x0d, 0x24}};
 | |
| extern const GUID OLEDBDECLSPEC DBSCHEMA_SPARSE_COLUMN_SET           = {0x31a4837c, 0xf9ff, 0x405f, {0x89, 0x82, 0x02, 0x19, 0xaa, 0xaa, 0x4a, 0x12}};
 | |
| 
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_LINKEDSERVERS
 | |
| #define CRESTRICTIONS_DBSCHEMA_LINKEDSERVERS    1
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_ASSEMBLIES
 | |
| #define CRESTRICTIONS_DBSCHEMA_SQL_ASSEMBLIES       4
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_ASSEMBLY_DEPENDENCIES
 | |
| #define CRESTRICTIONS_DBSCHEMA_SQL_ASSEMBLY_DEPENDENCIES 4
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_USER_TYPES
 | |
| #define CRESTRICTIONS_DBSCHEMA_SQL_USER_TYPES   3
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_XML_COLLECTIONS
 | |
| #define CRESTRICTIONS_DBSCHEMA_XML_COLLECTIONS   4
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPES
 | |
| #define CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPES    3
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPE_PRIMARY_KEYS
 | |
| #define CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPE_PRIMARY_KEYS    3
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPE_COLUMNS
 | |
| #define CRESTRICTIONS_DBSCHEMA_SQL_TABLE_TYPE_COLUMNS    4
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_COLUMNS_EXTENDED
 | |
| #define CRESTRICTIONS_DBSCHEMA_COLUMNS_EXTENDED    4
 | |
| #endif
 | |
| 
 | |
| #ifndef CRESTRICTIONS_DBSCHEMA_SPARSE_COLUMN_SET
 | |
| #define CRESTRICTIONS_DBSCHEMA_SPARSE_COLUMN_SET    4
 | |
| #endif
 | |
| 
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // Provider-specific property sets
 | |
| //
 | |
| #ifndef  _SQLOLEDB_H_
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERDATASOURCE    = {0x28efaee4,0x2d2c,0x11d1,{0x98,0x7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERDATASOURCEINFO= {0xdf10cb94,0x35f6,0x11d2,{0x9c,0x54,0x0,0xc0,0x4f,0x79,0x71,0xd3}};
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERDBINIT        = {0x5cf4ca10,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERROWSET        = {0x5cf4ca11,0xef21,0x11d0,{0x97,0xe7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERSESSION       = {0x28efaee5,0x2d2c,0x11d1,{0x98,0x7,0x0,0xc0,0x4f,0xc2,0xad,0x98}};
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERCOLUMN        = {0x3b63fb5e,0x3fbb,0x11d3,{0x9f,0x29,0x0,0xc0,0x4f,0x8e,0xe9,0xdc}};
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERSTREAM        = {0x9f79c073,0x8a6d,0x4bca,{0xa8,0xa8,0xc9,0xb7,0x9a,0x9b,0x96,0x2d}};
 | |
| #endif //_SQLOLEDB_H_
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERPARAMETER     = {0xfee09128,0xa67d,0x47ea,{0x8d,0x40,0x24,0xa1,0xd4,0x73,0x7e,0x8d}};
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_SQLSERVERINDEX         = {0xE428B84E,0xA6B7,0x413a,{0x94,0x65,0x56,0x23,0x2E,0x0D,0x2B,0xEB}};
 | |
| extern const GUID OLEDBDECLSPEC DBPROPSET_PARAMETERALL           = {0x2cd2b7d8,0xe7c2,0x4f6c,{0x9b,0x30,0x75,0xe2,0x58,0x46,0x10,0x97}};
 | |
| 
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // Provider-specific columns for IColumnsRowset
 | |
| //
 | |
| #define DBCOLUMN_SS_X_GUID {0x627bd890,0xed54,0x11d2,{0xb9,0x94,0x0,0xc0,0x4f,0x8c,0xa8,0x2c}}
 | |
| //
 | |
| #ifndef  _SQLOLEDB_H_
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_COMPFLAGS        = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)100};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_SORTID           = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)101};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_BASETABLEINSTANCE   = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)102};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_TDSCOLLATION     = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)103};
 | |
| #endif //_SQLOLEDB_H_
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_BASESERVERNAME      = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)104};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_XML_SCHEMACOLLECTION_CATALOGNAME= {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)105};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_XML_SCHEMACOLLECTION_SCHEMANAME = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)106};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_XML_SCHEMACOLLECTIONNAME        = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)107};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_UDT_CATALOGNAME  = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)108};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_UDT_SCHEMANAME   = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)109};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_UDT_NAME         = {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)110};
 | |
| extern const DBID OLEDBDECLSPEC DBCOLUMN_SS_ASSEMBLY_TYPENAME= {DBCOLUMN_SS_X_GUID, DBKIND_GUID_PROPID, (LPOLESTR)111};
 | |
| 
 | |
| // OLEDB part of SQL Server Native Client header - end here!
 | |
| #endif // defined(_SQLNCLI_OLEDB_) || !defined(_SQLNCLI_ODBC_)
 | |
| 
 | |
| // ODBC part of SQL Server Native Client header - begin here!
 | |
| #if defined(_SQLNCLI_ODBC_) || !defined(_SQLNCLI_OLEDB_)
 | |
| #ifdef ODBCVER
 | |
| 
 | |
| // max SQL Server identifier length
 | |
| #define SQL_MAX_SQLSERVERNAME                       128
 | |
| 
 | |
| // SQLSetConnectAttr driver specific defines.
 | |
| // Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server Native Client driver usage.
 | |
| // Connection attributes
 | |
| #define SQL_COPT_SS_BASE                                1200
 | |
| #define SQL_COPT_SS_REMOTE_PWD                          (SQL_COPT_SS_BASE+1) // dbrpwset SQLSetConnectOption only
 | |
| #define SQL_COPT_SS_USE_PROC_FOR_PREP                   (SQL_COPT_SS_BASE+2) // Use create proc for SQLPrepare
 | |
| #define SQL_COPT_SS_INTEGRATED_SECURITY                 (SQL_COPT_SS_BASE+3) // Force integrated security on login
 | |
| #define SQL_COPT_SS_PRESERVE_CURSORS                    (SQL_COPT_SS_BASE+4) // Preserve server cursors after SQLTransact
 | |
| #define SQL_COPT_SS_USER_DATA                           (SQL_COPT_SS_BASE+5) // dbgetuserdata/dbsetuserdata
 | |
| #define SQL_COPT_SS_ENLIST_IN_DTC                       SQL_ATTR_ENLIST_IN_DTC // Enlist in a DTC transaction
 | |
| #define SQL_COPT_SS_ENLIST_IN_XA                        SQL_ATTR_ENLIST_IN_XA // Enlist in a XA transaction
 | |
| #define SQL_COPT_SS_FALLBACK_CONNECT                    (SQL_COPT_SS_BASE+10) // Enables FallBack connections
 | |
| #define SQL_COPT_SS_PERF_DATA                           (SQL_COPT_SS_BASE+11) // Used to access SQL Server ODBC driver performance data
 | |
| #define SQL_COPT_SS_PERF_DATA_LOG                       (SQL_COPT_SS_BASE+12) // Used to set the logfile name for the Performance data
 | |
| #define SQL_COPT_SS_PERF_QUERY_INTERVAL                 (SQL_COPT_SS_BASE+13) // Used to set the query logging threshold in milliseconds.
 | |
| #define SQL_COPT_SS_PERF_QUERY_LOG                      (SQL_COPT_SS_BASE+14) // Used to set the logfile name for saving queryies.
 | |
| #define SQL_COPT_SS_PERF_QUERY                          (SQL_COPT_SS_BASE+15) // Used to start and stop query logging.
 | |
| #define SQL_COPT_SS_PERF_DATA_LOG_NOW                   (SQL_COPT_SS_BASE+16) // Used to make a statistics log entry to disk.
 | |
| #define SQL_COPT_SS_QUOTED_IDENT                        (SQL_COPT_SS_BASE+17) // Enable/Disable Quoted Identifiers
 | |
| #define SQL_COPT_SS_ANSI_NPW                            (SQL_COPT_SS_BASE+18) // Enable/Disable ANSI NULL, Padding and Warnings
 | |
| #define SQL_COPT_SS_BCP                                 (SQL_COPT_SS_BASE+19) // Allow BCP usage on connection
 | |
| #define SQL_COPT_SS_TRANSLATE                           (SQL_COPT_SS_BASE+20) // Perform code page translation
 | |
| #define SQL_COPT_SS_ATTACHDBFILENAME                    (SQL_COPT_SS_BASE+21) // File name to be attached as a database
 | |
| #define SQL_COPT_SS_CONCAT_NULL                         (SQL_COPT_SS_BASE+22) // Enable/Disable CONCAT_NULL_YIELDS_NULL
 | |
| #define SQL_COPT_SS_ENCRYPT                             (SQL_COPT_SS_BASE+23) // Allow strong encryption for data
 | |
| #define SQL_COPT_SS_MARS_ENABLED                        (SQL_COPT_SS_BASE+24) // Multiple active result set per connection
 | |
| #define SQL_COPT_SS_FAILOVER_PARTNER                    (SQL_COPT_SS_BASE+25) // Failover partner server
 | |
| #define SQL_COPT_SS_OLDPWD                              (SQL_COPT_SS_BASE+26) // Old Password, used when changing password during login
 | |
| #define SQL_COPT_SS_TXN_ISOLATION                       (SQL_COPT_SS_BASE+27) // Used to set/get any driver-specific or ODBC-defined TXN iso level
 | |
| #define SQL_COPT_SS_TRUST_SERVER_CERTIFICATE            (SQL_COPT_SS_BASE+28) // Trust server certificate
 | |
| #define SQL_COPT_SS_SERVER_SPN                          (SQL_COPT_SS_BASE+29) // Server SPN
 | |
| #define SQL_COPT_SS_FAILOVER_PARTNER_SPN                (SQL_COPT_SS_BASE+30) // Failover partner server SPN
 | |
| #define SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD    (SQL_COPT_SS_BASE+31) // The integrated authentication method used for the connection
 | |
| #define SQL_COPT_SS_MUTUALLY_AUTHENTICATED              (SQL_COPT_SS_BASE+32) // Used to decide if the connection is mutually authenticated
 | |
| #define SQL_COPT_SS_CLIENT_CONNECTION_ID                (SQL_COPT_SS_BASE+33) // Post connection attribute used to get the ConnectionID
 | |
| #define SQL_COPT_SS_MAX_USED                            SQL_COPT_SS_CLIENT_CONNECTION_ID
 | |
| // Define old names
 | |
| #define SQL_REMOTE_PWD                              SQL_COPT_SS_REMOTE_PWD
 | |
| #define SQL_USE_PROCEDURE_FOR_PREPARE               SQL_COPT_SS_USE_PROC_FOR_PREP
 | |
| #define SQL_INTEGRATED_SECURITY                     SQL_COPT_SS_INTEGRATED_SECURITY
 | |
| #define SQL_PRESERVE_CURSORS                        SQL_COPT_SS_PRESERVE_CURSORS
 | |
| 
 | |
| // SQLSetStmtAttr SQL Server Native Client driver specific defines.
 | |
| // Statement attributes
 | |
| #define SQL_SOPT_SS_BASE                            1225
 | |
| #define SQL_SOPT_SS_TEXTPTR_LOGGING                 (SQL_SOPT_SS_BASE+0) // Text pointer logging
 | |
| #define SQL_SOPT_SS_CURRENT_COMMAND                 (SQL_SOPT_SS_BASE+1) // dbcurcmd SQLGetStmtOption only
 | |
| #define SQL_SOPT_SS_HIDDEN_COLUMNS                  (SQL_SOPT_SS_BASE+2) // Expose FOR BROWSE hidden columns
 | |
| #define SQL_SOPT_SS_NOBROWSETABLE                   (SQL_SOPT_SS_BASE+3) // Set NOBROWSETABLE option
 | |
| #define SQL_SOPT_SS_REGIONALIZE                     (SQL_SOPT_SS_BASE+4) // Regionalize output character conversions
 | |
| #define SQL_SOPT_SS_CURSOR_OPTIONS                  (SQL_SOPT_SS_BASE+5) // Server cursor options
 | |
| #define SQL_SOPT_SS_NOCOUNT_STATUS                  (SQL_SOPT_SS_BASE+6) // Real vs. Not Real row count indicator
 | |
| #define SQL_SOPT_SS_DEFER_PREPARE                   (SQL_SOPT_SS_BASE+7) // Defer prepare until necessary
 | |
| #define SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT       (SQL_SOPT_SS_BASE+8) // Notification timeout
 | |
| #define SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT       (SQL_SOPT_SS_BASE+9) // Notification message text
 | |
| #define SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS       (SQL_SOPT_SS_BASE+10)// SQL service broker name
 | |
| #define SQL_SOPT_SS_PARAM_FOCUS                     (SQL_SOPT_SS_BASE+11)// Direct subsequent calls to parameter related methods to set properties on constituent columns/parameters of container types
 | |
| #define SQL_SOPT_SS_NAME_SCOPE                      (SQL_SOPT_SS_BASE+12)// Sets name scope for subsequent catalog function calls
 | |
| #define SQL_SOPT_SS_MAX_USED                        SQL_SOPT_SS_NAME_SCOPE
 | |
| // Define old names
 | |
| #define SQL_TEXTPTR_LOGGING                         SQL_SOPT_SS_TEXTPTR_LOGGING
 | |
| #define SQL_COPT_SS_BASE_EX                         1240
 | |
| #define SQL_COPT_SS_BROWSE_CONNECT                  (SQL_COPT_SS_BASE_EX+1) // Browse connect mode of operation
 | |
| #define SQL_COPT_SS_BROWSE_SERVER                   (SQL_COPT_SS_BASE_EX+2) // Single Server browse request.
 | |
| #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.
 | |
| #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
 | |
| #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)
 | |
| #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
 | |
| #define SQL_COPT_SS_APPLICATION_INTENT              (SQL_COPT_SS_BASE_EX+7) // Application Intent
 | |
| #define SQL_COPT_SS_MULTISUBNET_FAILOVER            (SQL_COPT_SS_BASE_EX+8) // Multi-subnet Failover
 | |
| #define SQL_COPT_SS_EX_MAX_USED                     SQL_COPT_SS_MULTISUBNET_FAILOVER
 | |
| 
 | |
| // SQLColAttributes driver specific defines.
 | |
| // SQLSetDescField/SQLGetDescField driver specific defines.
 | |
| // Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server Native Client driver usage.
 | |
| #define SQL_CA_SS_BASE                              1200
 | |
| #define SQL_CA_SS_COLUMN_SSTYPE                     (SQL_CA_SS_BASE+0)   //  dbcoltype/dbalttype
 | |
| #define SQL_CA_SS_COLUMN_UTYPE                      (SQL_CA_SS_BASE+1)   //  dbcolutype/dbaltutype
 | |
| #define SQL_CA_SS_NUM_ORDERS                        (SQL_CA_SS_BASE+2)   //  dbnumorders
 | |
| #define SQL_CA_SS_COLUMN_ORDER                      (SQL_CA_SS_BASE+3)   //  dbordercol
 | |
| #define SQL_CA_SS_COLUMN_VARYLEN                    (SQL_CA_SS_BASE+4)   //  dbvarylen
 | |
| #define SQL_CA_SS_NUM_COMPUTES                      (SQL_CA_SS_BASE+5)   //  dbnumcompute
 | |
| #define SQL_CA_SS_COMPUTE_ID                        (SQL_CA_SS_BASE+6)   //  dbnextrow status return
 | |
| #define SQL_CA_SS_COMPUTE_BYLIST                    (SQL_CA_SS_BASE+7)   //  dbbylist
 | |
| #define SQL_CA_SS_COLUMN_ID                         (SQL_CA_SS_BASE+8)   //  dbaltcolid
 | |
| #define SQL_CA_SS_COLUMN_OP                         (SQL_CA_SS_BASE+9)   //  dbaltop
 | |
| #define SQL_CA_SS_COLUMN_SIZE                       (SQL_CA_SS_BASE+10)  //  dbcollen
 | |
| #define SQL_CA_SS_COLUMN_HIDDEN                     (SQL_CA_SS_BASE+11)  //  Column is hidden (FOR BROWSE)
 | |
| #define SQL_CA_SS_COLUMN_KEY                        (SQL_CA_SS_BASE+12)  //  Column is key column (FOR BROWSE)
 | |
| //#define SQL_DESC_BASE_COLUMN_NAME_OLD             (SQL_CA_SS_BASE+13)  //  This is defined at another location.
 | |
| #define SQL_CA_SS_COLUMN_COLLATION                  (SQL_CA_SS_BASE+14)  //  Column collation (only for chars)
 | |
| #define SQL_CA_SS_VARIANT_TYPE                      (SQL_CA_SS_BASE+15)
 | |
| #define SQL_CA_SS_VARIANT_SQL_TYPE                  (SQL_CA_SS_BASE+16)
 | |
| #define SQL_CA_SS_VARIANT_SERVER_TYPE               (SQL_CA_SS_BASE+17)
 | |
| 
 | |
| // XML, CLR UDT, and table valued parameter related metadata
 | |
| #define SQL_CA_SS_UDT_CATALOG_NAME                  (SQL_CA_SS_BASE+18) //  UDT catalog name
 | |
| #define SQL_CA_SS_UDT_SCHEMA_NAME                   (SQL_CA_SS_BASE+19) //  UDT schema name
 | |
| #define SQL_CA_SS_UDT_TYPE_NAME                     (SQL_CA_SS_BASE+20) //  UDT type name
 | |
| #define SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME            (SQL_CA_SS_BASE+21) //  Qualified name of the assembly containing the UDT class
 | |
| #define SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME (SQL_CA_SS_BASE+22) //  Name of the catalog that contains XML Schema collection
 | |
| #define SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME  (SQL_CA_SS_BASE+23) //  Name of the schema that contains XML Schema collection
 | |
| #define SQL_CA_SS_XML_SCHEMACOLLECTION_NAME         (SQL_CA_SS_BASE+24) //  Name of the XML Schema collection
 | |
| #define SQL_CA_SS_CATALOG_NAME                      (SQL_CA_SS_BASE+25) //  Catalog name
 | |
| #define SQL_CA_SS_SCHEMA_NAME                       (SQL_CA_SS_BASE+26) //  Schema name
 | |
| #define SQL_CA_SS_TYPE_NAME                         (SQL_CA_SS_BASE+27) //  Type name
 | |
| 
 | |
| // table valued parameter related metadata
 | |
| #define SQL_CA_SS_COLUMN_COMPUTED                   (SQL_CA_SS_BASE+29) //  column is computed
 | |
| #define SQL_CA_SS_COLUMN_IN_UNIQUE_KEY              (SQL_CA_SS_BASE+30) //  column is part of a unique key
 | |
| #define SQL_CA_SS_COLUMN_SORT_ORDER                 (SQL_CA_SS_BASE+31) //  column sort order
 | |
| #define SQL_CA_SS_COLUMN_SORT_ORDINAL               (SQL_CA_SS_BASE+32) //  column sort ordinal
 | |
| #define SQL_CA_SS_COLUMN_HAS_DEFAULT_VALUE          (SQL_CA_SS_BASE+33) //  column has default value for all rows of the table valued parameter
 | |
| 
 | |
| // sparse column related metadata
 | |
| #define SQL_CA_SS_IS_COLUMN_SET                     (SQL_CA_SS_BASE+34) //  column is a column-set column for sparse columns
 | |
| 
 | |
| // Legacy datetime related metadata
 | |
| #define SQL_CA_SS_SERVER_TYPE                       (SQL_CA_SS_BASE+35) //  column type to send on the wire for datetime types
 | |
| 
 | |
| #define SQL_CA_SS_MAX_USED                          (SQL_CA_SS_BASE+36)
 | |
| 
 | |
| // Defines returned by SQL_ATTR_CURSOR_TYPE/SQL_CURSOR_TYPE
 | |
| #define SQL_CURSOR_FAST_FORWARD_ONLY        8            //  Only returned by SQLGetStmtAttr/Option
 | |
| // Defines for use with SQL_COPT_SS_USE_PROC_FOR_PREP
 | |
| #define SQL_UP_OFF                          0L           //  Procedures won't be used for prepare
 | |
| #define SQL_UP_ON                           1L           //  Procedures will be used for prepare
 | |
| #define SQL_UP_ON_DROP                      2L           //  Temp procedures will be explicitly dropped
 | |
| #define SQL_UP_DEFAULT                      SQL_UP_ON
 | |
| // Defines for use with SQL_COPT_SS_INTEGRATED_SECURITY - Pre-Connect Option only
 | |
| #define SQL_IS_OFF                          0L           //  Integrated security isn't used
 | |
| #define SQL_IS_ON                           1L           //  Integrated security is used
 | |
| #define SQL_IS_DEFAULT                      SQL_IS_OFF
 | |
| // Defines for use with SQL_COPT_SS_PRESERVE_CURSORS
 | |
| #define SQL_PC_OFF                          0L           //  Cursors are closed on SQLTransact
 | |
| #define SQL_PC_ON                           1L           //  Cursors remain open on SQLTransact
 | |
| #define SQL_PC_DEFAULT                      SQL_PC_OFF
 | |
| // Defines for use with SQL_COPT_SS_USER_DATA
 | |
| #define SQL_UD_NOTSET                       NULL         //  No user data pointer set
 | |
| // Defines for use with SQL_COPT_SS_TRANSLATE
 | |
| #define SQL_XL_OFF                          0L           //  Code page translation is not performed
 | |
| #define SQL_XL_ON                           1L           //  Code page translation is performed
 | |
| #define SQL_XL_DEFAULT                      SQL_XL_ON
 | |
| // Defines for use with SQL_COPT_SS_FALLBACK_CONNECT - Pre-Connect Option only
 | |
| #define SQL_FB_OFF                          0L           //  FallBack connections are disabled
 | |
| #define SQL_FB_ON                           1L           //  FallBack connections are enabled
 | |
| #define SQL_FB_DEFAULT                      SQL_FB_OFF
 | |
| // Defines for use with SQL_COPT_SS_BCP - Pre-Connect Option only
 | |
| #define SQL_BCP_OFF                         0L           //  BCP is not allowed on connection
 | |
| #define SQL_BCP_ON                          1L           //  BCP is allowed on connection
 | |
| #define SQL_BCP_DEFAULT                     SQL_BCP_OFF
 | |
| // Defines for use with SQL_COPT_SS_QUOTED_IDENT
 | |
| #define SQL_QI_OFF                          0L           //  Quoted identifiers are enable
 | |
| #define SQL_QI_ON                           1L           //  Quoted identifiers are disabled
 | |
| #define SQL_QI_DEFAULT                      SQL_QI_ON
 | |
| // Defines for use with SQL_COPT_SS_ANSI_NPW - Pre-Connect Option only
 | |
| #define SQL_AD_OFF                          0L           //  ANSI NULLs, Padding and Warnings are enabled
 | |
| #define SQL_AD_ON                           1L           //  ANSI NULLs, Padding and Warnings are disabled
 | |
| #define SQL_AD_DEFAULT                      SQL_AD_ON
 | |
| // Defines for use with SQL_COPT_SS_CONCAT_NULL - Pre-Connect Option only
 | |
| #define SQL_CN_OFF                          0L           //  CONCAT_NULL_YIELDS_NULL is off
 | |
| #define SQL_CN_ON                           1L           //  CONCAT_NULL_YIELDS_NULL is on
 | |
| #define SQL_CN_DEFAULT                      SQL_CN_ON
 | |
| // Defines for use with SQL_SOPT_SS_TEXTPTR_LOGGING
 | |
| #define SQL_TL_OFF                          0L           //  No logging on text pointer ops
 | |
| #define SQL_TL_ON                           1L           //  Logging occurs on text pointer ops
 | |
| #define SQL_TL_DEFAULT                      SQL_TL_ON
 | |
| // Defines for use with SQL_SOPT_SS_HIDDEN_COLUMNS
 | |
| #define SQL_HC_OFF                          0L           //  FOR BROWSE columns are hidden
 | |
| #define SQL_HC_ON                           1L           //  FOR BROWSE columns are exposed
 | |
| #define SQL_HC_DEFAULT                      SQL_HC_OFF
 | |
| // Defines for use with SQL_SOPT_SS_NOBROWSETABLE
 | |
| #define SQL_NB_OFF                          0L           //  NO_BROWSETABLE is off
 | |
| #define SQL_NB_ON                           1L           //  NO_BROWSETABLE is on
 | |
| #define SQL_NB_DEFAULT                      SQL_NB_OFF
 | |
| // Defines for use with SQL_SOPT_SS_REGIONALIZE
 | |
| #define SQL_RE_OFF                          0L           //  No regionalization occurs on output character conversions
 | |
| #define SQL_RE_ON                           1L           //  Regionalization occurs on output character conversions
 | |
| #define SQL_RE_DEFAULT                      SQL_RE_OFF
 | |
| // Defines for use with SQL_SOPT_SS_CURSOR_OPTIONS
 | |
| #define SQL_CO_OFF                          0L           //  Clear all cursor options
 | |
| #define SQL_CO_FFO                          1L           //  Fast-forward cursor will be used
 | |
| #define SQL_CO_AF                           2L           //  Autofetch on cursor open
 | |
| #define SQL_CO_FFO_AF                       (SQL_CO_FFO|SQL_CO_AF)  //  Fast-forward cursor with autofetch
 | |
| #define SQL_CO_FIREHOSE_AF                  4L           //  Auto fetch on fire-hose cursors
 | |
| #define SQL_CO_DEFAULT                      SQL_CO_OFF
 | |
| //SQL_SOPT_SS_NOCOUNT_STATUS 
 | |
| #define SQL_NC_OFF                          0L
 | |
| #define SQL_NC_ON                           1L
 | |
| //SQL_SOPT_SS_DEFER_PREPARE 
 | |
| #define SQL_DP_OFF                          0L
 | |
| #define SQL_DP_ON                           1L
 | |
| //SQL_SOPT_SS_NAME_SCOPE
 | |
| #define SQL_SS_NAME_SCOPE_TABLE             0L
 | |
| #define SQL_SS_NAME_SCOPE_TABLE_TYPE        1L
 | |
| #define SQL_SS_NAME_SCOPE_EXTENDED          2L
 | |
| #define SQL_SS_NAME_SCOPE_SPARSE_COLUMN_SET 3L
 | |
| #define SQL_SS_NAME_SCOPE_DEFAULT           SQL_SS_NAME_SCOPE_TABLE
 | |
| //SQL_COPT_SS_ENCRYPT 
 | |
| #define SQL_EN_OFF                          0L
 | |
| #define SQL_EN_ON                           1L
 | |
| //SQL_COPT_SS_TRUST_SERVER_CERTIFICATE
 | |
| #define SQL_TRUST_SERVER_CERTIFICATE_NO     0L
 | |
| #define SQL_TRUST_SERVER_CERTIFICATE_YES    1L
 | |
| //SQL_COPT_SS_BROWSE_CONNECT 
 | |
| #define SQL_MORE_INFO_NO                    0L
 | |
| #define SQL_MORE_INFO_YES                   1L
 | |
| //SQL_COPT_SS_BROWSE_CACHE_DATA 
 | |
| #define SQL_CACHE_DATA_NO                   0L
 | |
| #define SQL_CACHE_DATA_YES                  1L
 | |
| //SQL_COPT_SS_RESET_CONNECTION 
 | |
| #define SQL_RESET_YES                       1L
 | |
| //SQL_COPT_SS_WARN_ON_CP_ERROR 
 | |
| #define SQL_WARN_NO                         0L
 | |
| #define SQL_WARN_YES                        1L
 | |
| //SQL_COPT_SS_MARS_ENABLED 
 | |
| #define SQL_MARS_ENABLED_NO                 0L
 | |
| #define SQL_MARS_ENABLED_YES                1L
 | |
| /* SQL_TXN_ISOLATION_OPTION bitmasks */
 | |
| #define SQL_TXN_SS_SNAPSHOT                 0x00000020L
 | |
| 
 | |
| // The following are defines for SQL_CA_SS_COLUMN_SORT_ORDER
 | |
| #define SQL_SS_ORDER_UNSPECIFIED            0L
 | |
| #define SQL_SS_DESCENDING_ORDER             1L
 | |
| #define SQL_SS_ASCENDING_ORDER              2L
 | |
| #define SQL_SS_ORDER_DEFAULT                SQL_SS_ORDER_UNSPECIFIED
 | |
| 
 | |
| // Driver specific SQL data type defines.
 | |
| // Microsoft has -150 thru -199 reserved for Microsoft SQL Server Native Client driver usage.
 | |
| #define SQL_SS_VARIANT                      (-150)
 | |
| #define SQL_SS_UDT                          (-151)
 | |
| #define SQL_SS_XML                          (-152)
 | |
| #define SQL_SS_TABLE                        (-153)
 | |
| #define SQL_SS_TIME2                        (-154)
 | |
| #define SQL_SS_TIMESTAMPOFFSET              (-155)
 | |
| 
 | |
| // Local types to be used with SQL_CA_SS_SERVER_TYPE
 | |
| #define SQL_SS_TYPE_DEFAULT                         0L
 | |
| #define SQL_SS_TYPE_SMALLDATETIME                   1L
 | |
| #define SQL_SS_TYPE_DATETIME                        2L
 | |
| 
 | |
| // Extended C Types range 4000 and above. Range of -100 thru 200 is reserved by Driver Manager.
 | |
| #define SQL_C_TYPES_EXTENDED                0x04000L
 | |
| #define SQL_C_SS_TIME2                         (SQL_C_TYPES_EXTENDED+0)
 | |
| #define SQL_C_SS_TIMESTAMPOFFSET               (SQL_C_TYPES_EXTENDED+1)
 | |
| 
 | |
| #ifndef SQLNCLI_NO_BCP
 | |
| // Define the symbol SQLNCLI_NO_BCP if you are not using BCP in your application
 | |
| // and you want to exclude the BCP-related definitions in this header file.
 | |
| 
 | |
| // SQL Server Data Type defines.
 | |
| // New types for SQL 6.0 and later servers
 | |
| #define SQLTEXT                             0x23
 | |
| #define SQLVARBINARY                        0x25
 | |
| #define SQLINTN                             0x26
 | |
| #define SQLVARCHAR                          0x27
 | |
| #define SQLBINARY                           0x2d
 | |
| #define SQLIMAGE                            0x22
 | |
| #define SQLCHARACTER                        0x2f
 | |
| #define SQLINT1                             0x30
 | |
| #define SQLBIT                              0x32
 | |
| #define SQLINT2                             0x34
 | |
| #define SQLINT4                             0x38
 | |
| #define SQLMONEY                            0x3c
 | |
| #define SQLDATETIME                         0x3d
 | |
| #define SQLFLT8                             0x3e
 | |
| #define SQLFLTN                             0x6d
 | |
| #define SQLMONEYN                           0x6e
 | |
| #define SQLDATETIMN                         0x6f
 | |
| #define SQLFLT4                             0x3b
 | |
| #define SQLMONEY4                           0x7a
 | |
| #define SQLDATETIM4                         0x3a
 | |
| // New types for SQL 6.0 and later servers
 | |
| #define SQLDECIMAL                          0x6a
 | |
| #define SQLNUMERIC                          0x6c
 | |
| // New types for SQL 7.0 and later servers
 | |
| #define SQLUNIQUEID                         0x24
 | |
| #define SQLBIGCHAR                          0xaf
 | |
| #define SQLBIGVARCHAR                       0xa7
 | |
| #define SQLBIGBINARY                        0xad
 | |
| #define SQLBIGVARBINARY                     0xa5
 | |
| #define SQLBITN                             0x68
 | |
| #define SQLNCHAR                            0xef
 | |
| #define SQLNVARCHAR                         0xe7
 | |
| #define SQLNTEXT                            0x63
 | |
| // New types for SQL 2000 and later servers
 | |
| #define SQLINT8                             0x7f
 | |
| #define SQLVARIANT                          0x62
 | |
| // New types for SQL 2005 and later servers
 | |
| #define SQLUDT                              0xf0
 | |
| #define SQLXML                              0xf1
 | |
| // New types for SQL 2008 and later servers
 | |
| #define SQLTABLE                            0xf3
 | |
| #define SQLDATEN                            0x28
 | |
| #define SQLTIMEN                            0x29
 | |
| #define SQLDATETIME2N                       0x2a
 | |
| #define SQLDATETIMEOFFSETN                  0x2b
 | |
| // Define old names
 | |
| #define SQLDECIMALN                         0x6a
 | |
| #define SQLNUMERICN                         0x6c
 | |
| #endif // SQLNCLI_NO_BCP
 | |
| 
 | |
| // SQL_SS_LENGTH_UNLIMITED is used to describe the max length of
 | |
| // VARCHAR(max), VARBINARY(max), NVARCHAR(max), and XML columns
 | |
| #define SQL_SS_LENGTH_UNLIMITED             0
 | |
| 
 | |
| // User Data Type definitions.
 | |
| // Returned by SQLColAttributes/SQL_CA_SS_COLUMN_UTYPE.
 | |
| #define SQLudtBINARY                        3
 | |
| #define SQLudtBIT                           16
 | |
| #define SQLudtBITN                          0
 | |
| #define SQLudtCHAR                          1
 | |
| #define SQLudtDATETIM4                      22
 | |
| #define SQLudtDATETIME                      12
 | |
| #define SQLudtDATETIMN                      15
 | |
| #define SQLudtDECML                         24
 | |
| #define SQLudtDECMLN                        26
 | |
| #define SQLudtFLT4                          23
 | |
| #define SQLudtFLT8                          8
 | |
| #define SQLudtFLTN                          14
 | |
| #define SQLudtIMAGE                         20
 | |
| #define SQLudtINT1                          5
 | |
| #define SQLudtINT2                          6
 | |
| #define SQLudtINT4                          7
 | |
| #define SQLudtINTN                          13
 | |
| #define SQLudtMONEY                         11
 | |
| #define SQLudtMONEY4                        21
 | |
| #define SQLudtMONEYN                        17
 | |
| #define SQLudtNUM                           10
 | |
| #define SQLudtNUMN                          25
 | |
| #define SQLudtSYSNAME                       18
 | |
| #define SQLudtTEXT                          19
 | |
| #define SQLudtTIMESTAMP                     80
 | |
| #define SQLudtUNIQUEIDENTIFIER              0
 | |
| #define SQLudtVARBINARY                     4
 | |
| #define SQLudtVARCHAR                       2
 | |
| #define MIN_USER_DATATYPE                   256
 | |
| // Aggregate operator types.
 | |
| // Returned by SQLColAttributes/SQL_CA_SS_COLUMN_OP.
 | |
| #define SQLAOPSTDEV                         0x30    // Standard deviation
 | |
| #define SQLAOPSTDEVP                        0x31    // Standard deviation population
 | |
| #define SQLAOPVAR                           0x32    // Variance
 | |
| #define SQLAOPVARP                          0x33    // Variance population
 | |
| #define SQLAOPCNT                           0x4b    // Count
 | |
| #define SQLAOPSUM                           0x4d    // Sum
 | |
| #define SQLAOPAVG                           0x4f    // Average
 | |
| #define SQLAOPMIN                           0x51    // Min
 | |
| #define SQLAOPMAX                           0x52    // Max
 | |
| #define SQLAOPANY                           0x53    // Any
 | |
| #define SQLAOPNOOP                          0x56    // None
 | |
| // SQLGetInfo driver specific defines.
 | |
| // Microsoft has 1151 thru 1200 reserved for Microsoft SQL Server Native Client driver usage.
 | |
| #define SQL_INFO_SS_FIRST                   1199
 | |
| #define SQL_INFO_SS_NETLIB_NAMEW            (SQL_INFO_SS_FIRST+0) //  dbprocinfo
 | |
| #define SQL_INFO_SS_NETLIB_NAMEA            (SQL_INFO_SS_FIRST+1) //  dbprocinfo
 | |
| #define SQL_INFO_SS_MAX_USED                SQL_INFO_SS_NETLIB_NAMEA
 | |
| #ifdef UNICODE
 | |
| #define SQL_INFO_SS_NETLIB_NAME             SQL_INFO_SS_NETLIB_NAMEW
 | |
| #else
 | |
| #define SQL_INFO_SS_NETLIB_NAME             SQL_INFO_SS_NETLIB_NAMEA
 | |
| #endif
 | |
| // SQLGetDiagField driver specific defines.
 | |
| // Microsoft has -1150 thru -1199 reserved for Microsoft SQL Server Native Client driver usage.
 | |
| #define SQL_DIAG_SS_BASE                    (-1150)
 | |
| #define SQL_DIAG_SS_MSGSTATE                (SQL_DIAG_SS_BASE)
 | |
| #define SQL_DIAG_SS_SEVERITY                (SQL_DIAG_SS_BASE-1)
 | |
| #define SQL_DIAG_SS_SRVNAME                 (SQL_DIAG_SS_BASE-2)
 | |
| #define SQL_DIAG_SS_PROCNAME                (SQL_DIAG_SS_BASE-3)
 | |
| #define SQL_DIAG_SS_LINE                    (SQL_DIAG_SS_BASE-4)
 | |
| // SQLGetDiagField/SQL_DIAG_DYNAMIC_FUNCTION_CODE driver specific defines.
 | |
| // Microsoft has -200 thru -299 reserved for Microsoft SQL Server Native Client driver usage.
 | |
| #define SQL_DIAG_DFC_SS_BASE                (-200)
 | |
| #define SQL_DIAG_DFC_SS_ALTER_DATABASE      (SQL_DIAG_DFC_SS_BASE-0)
 | |
| #define SQL_DIAG_DFC_SS_CHECKPOINT          (SQL_DIAG_DFC_SS_BASE-1)
 | |
| #define SQL_DIAG_DFC_SS_CONDITION           (SQL_DIAG_DFC_SS_BASE-2)
 | |
| #define SQL_DIAG_DFC_SS_CREATE_DATABASE     (SQL_DIAG_DFC_SS_BASE-3)
 | |
| #define SQL_DIAG_DFC_SS_CREATE_DEFAULT      (SQL_DIAG_DFC_SS_BASE-4)
 | |
| #define SQL_DIAG_DFC_SS_CREATE_PROCEDURE    (SQL_DIAG_DFC_SS_BASE-5)
 | |
| #define SQL_DIAG_DFC_SS_CREATE_RULE         (SQL_DIAG_DFC_SS_BASE-6)
 | |
| #define SQL_DIAG_DFC_SS_CREATE_TRIGGER      (SQL_DIAG_DFC_SS_BASE-7)
 | |
| #define SQL_DIAG_DFC_SS_CURSOR_DECLARE      (SQL_DIAG_DFC_SS_BASE-8)
 | |
| #define SQL_DIAG_DFC_SS_CURSOR_OPEN         (SQL_DIAG_DFC_SS_BASE-9)
 | |
| #define SQL_DIAG_DFC_SS_CURSOR_FETCH        (SQL_DIAG_DFC_SS_BASE-10)
 | |
| #define SQL_DIAG_DFC_SS_CURSOR_CLOSE        (SQL_DIAG_DFC_SS_BASE-11)
 | |
| #define SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR   (SQL_DIAG_DFC_SS_BASE-12)
 | |
| #define SQL_DIAG_DFC_SS_DBCC                (SQL_DIAG_DFC_SS_BASE-13)
 | |
| #define SQL_DIAG_DFC_SS_DISK                (SQL_DIAG_DFC_SS_BASE-14)
 | |
| #define SQL_DIAG_DFC_SS_DROP_DATABASE       (SQL_DIAG_DFC_SS_BASE-15)
 | |
| #define SQL_DIAG_DFC_SS_DROP_DEFAULT        (SQL_DIAG_DFC_SS_BASE-16)
 | |
| #define SQL_DIAG_DFC_SS_DROP_PROCEDURE      (SQL_DIAG_DFC_SS_BASE-17)
 | |
| #define SQL_DIAG_DFC_SS_DROP_RULE           (SQL_DIAG_DFC_SS_BASE-18)
 | |
| #define SQL_DIAG_DFC_SS_DROP_TRIGGER        (SQL_DIAG_DFC_SS_BASE-19)
 | |
| #define SQL_DIAG_DFC_SS_DUMP_DATABASE       (SQL_DIAG_DFC_SS_BASE-20)
 | |
| #define SQL_DIAG_DFC_SS_BACKUP_DATABASE     (SQL_DIAG_DFC_SS_BASE-20)
 | |
| #define SQL_DIAG_DFC_SS_DUMP_TABLE          (SQL_DIAG_DFC_SS_BASE-21)
 | |
| #define SQL_DIAG_DFC_SS_DUMP_TRANSACTION    (SQL_DIAG_DFC_SS_BASE-22)
 | |
| #define SQL_DIAG_DFC_SS_BACKUP_TRANSACTION  (SQL_DIAG_DFC_SS_BASE-22)
 | |
| #define SQL_DIAG_DFC_SS_GOTO                (SQL_DIAG_DFC_SS_BASE-23)
 | |
| #define SQL_DIAG_DFC_SS_INSERT_BULK         (SQL_DIAG_DFC_SS_BASE-24)
 | |
| #define SQL_DIAG_DFC_SS_KILL                (SQL_DIAG_DFC_SS_BASE-25)
 | |
| #define SQL_DIAG_DFC_SS_LOAD_DATABASE       (SQL_DIAG_DFC_SS_BASE-26)
 | |
| #define SQL_DIAG_DFC_SS_RESTORE_DATABASE    (SQL_DIAG_DFC_SS_BASE-26)
 | |
| #define SQL_DIAG_DFC_SS_LOAD_HEADERONLY     (SQL_DIAG_DFC_SS_BASE-27)
 | |
| #define SQL_DIAG_DFC_SS_RESTORE_HEADERONLY  (SQL_DIAG_DFC_SS_BASE-27)
 | |
| #define SQL_DIAG_DFC_SS_LOAD_TABLE          (SQL_DIAG_DFC_SS_BASE-28)
 | |
| #define SQL_DIAG_DFC_SS_LOAD_TRANSACTION    (SQL_DIAG_DFC_SS_BASE-29)
 | |
| #define SQL_DIAG_DFC_SS_RESTORE_TRANSACTION (SQL_DIAG_DFC_SS_BASE-29)
 | |
| #define SQL_DIAG_DFC_SS_PRINT               (SQL_DIAG_DFC_SS_BASE-30)
 | |
| #define SQL_DIAG_DFC_SS_RAISERROR           (SQL_DIAG_DFC_SS_BASE-31)
 | |
| #define SQL_DIAG_DFC_SS_READTEXT            (SQL_DIAG_DFC_SS_BASE-32)
 | |
| #define SQL_DIAG_DFC_SS_RECONFIGURE         (SQL_DIAG_DFC_SS_BASE-33)
 | |
| #define SQL_DIAG_DFC_SS_RETURN              (SQL_DIAG_DFC_SS_BASE-34)
 | |
| #define SQL_DIAG_DFC_SS_SELECT_INTO         (SQL_DIAG_DFC_SS_BASE-35)
 | |
| #define SQL_DIAG_DFC_SS_SET                 (SQL_DIAG_DFC_SS_BASE-36)
 | |
| #define SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT (SQL_DIAG_DFC_SS_BASE-37)
 | |
| #define SQL_DIAG_DFC_SS_SET_ROW_COUNT       (SQL_DIAG_DFC_SS_BASE-38)
 | |
| #define SQL_DIAG_DFC_SS_SET_STATISTICS      (SQL_DIAG_DFC_SS_BASE-39)
 | |
| #define SQL_DIAG_DFC_SS_SET_TEXTSIZE        (SQL_DIAG_DFC_SS_BASE-40)
 | |
| #define SQL_DIAG_DFC_SS_SETUSER             (SQL_DIAG_DFC_SS_BASE-41)
 | |
| #define SQL_DIAG_DFC_SS_SHUTDOWN            (SQL_DIAG_DFC_SS_BASE-42)
 | |
| #define SQL_DIAG_DFC_SS_TRANS_BEGIN         (SQL_DIAG_DFC_SS_BASE-43)
 | |
| #define SQL_DIAG_DFC_SS_TRANS_COMMIT        (SQL_DIAG_DFC_SS_BASE-44)
 | |
| #define SQL_DIAG_DFC_SS_TRANS_PREPARE       (SQL_DIAG_DFC_SS_BASE-45)
 | |
| #define SQL_DIAG_DFC_SS_TRANS_ROLLBACK      (SQL_DIAG_DFC_SS_BASE-46)
 | |
| #define SQL_DIAG_DFC_SS_TRANS_SAVE          (SQL_DIAG_DFC_SS_BASE-47)
 | |
| #define SQL_DIAG_DFC_SS_TRUNCATE_TABLE      (SQL_DIAG_DFC_SS_BASE-48)
 | |
| #define SQL_DIAG_DFC_SS_UPDATE_STATISTICS   (SQL_DIAG_DFC_SS_BASE-49)
 | |
| #define SQL_DIAG_DFC_SS_UPDATETEXT          (SQL_DIAG_DFC_SS_BASE-50)
 | |
| #define SQL_DIAG_DFC_SS_USE                 (SQL_DIAG_DFC_SS_BASE-51)
 | |
| #define SQL_DIAG_DFC_SS_WAITFOR             (SQL_DIAG_DFC_SS_BASE-52)
 | |
| #define SQL_DIAG_DFC_SS_WRITETEXT           (SQL_DIAG_DFC_SS_BASE-53)
 | |
| #define SQL_DIAG_DFC_SS_DENY                (SQL_DIAG_DFC_SS_BASE-54)
 | |
| #define SQL_DIAG_DFC_SS_SET_XCTLVL          (SQL_DIAG_DFC_SS_BASE-55)
 | |
| #define SQL_DIAG_DFC_SS_MERGE               (SQL_DIAG_DFC_SS_BASE-56)
 | |
| 
 | |
| // Severity codes for SQL_DIAG_SS_SEVERITY
 | |
| #define EX_ANY          0
 | |
| #define EX_INFO         10
 | |
| #define EX_MAXISEVERITY EX_INFO
 | |
| #define EX_MISSING      11
 | |
| #define EX_TYPE         12
 | |
| #define EX_DEADLOCK     13
 | |
| #define EX_PERMIT       14
 | |
| #define EX_SYNTAX       15
 | |
| #define EX_USER         16
 | |
| #define EX_RESOURCE     17
 | |
| #define EX_INTOK        18
 | |
| #define MAXUSEVERITY    EX_INTOK
 | |
| #define EX_LIMIT        19
 | |
| #define EX_CMDFATAL     20
 | |
| #define MINFATALERR     EX_CMDFATAL
 | |
| #define EX_DBFATAL      21
 | |
| #define EX_TABCORRUPT   22
 | |
| #define EX_DBCORRUPT    23
 | |
| #define EX_HARDWARE     24
 | |
| #define EX_CONTROL      25
 | |
| // Internal server datatypes - used when binding to SQL_C_BINARY
 | |
| #ifndef MAXNUMERICLEN   // Resolve ODS/DBLib conflicts
 | |
| // DB-Library datatypes
 | |
| #define DBMAXCHAR       (8000+1)                    // Max length of DBVARBINARY and DBVARCHAR, etc. +1 for zero byte
 | |
| #define MAXNAME         (SQL_MAX_SQLSERVERNAME+1)   // Max server identifier length including zero byte
 | |
| #ifdef UNICODE
 | |
| typedef wchar_t  DBCHAR;
 | |
| #else
 | |
| typedef char DBCHAR;
 | |
| 
 | |
| #endif
 | |
| typedef short SQLSMALLINT;
 | |
| 
 | |
| typedef unsigned short SQLUSMALLINT;
 | |
| 
 | |
| typedef unsigned char DBBINARY;
 | |
| 
 | |
| typedef unsigned char DBTINYINT;
 | |
| 
 | |
| typedef short DBSMALLINT;
 | |
| 
 | |
| typedef unsigned short DBUSMALLINT;
 | |
| 
 | |
| typedef double DBFLT8;
 | |
| 
 | |
| typedef unsigned char DBBIT;
 | |
| 
 | |
| typedef unsigned char DBBOOL;
 | |
| 
 | |
| typedef float DBFLT4;
 | |
| 
 | |
| typedef DBFLT4 DBREAL;
 | |
| 
 | |
| typedef UINT DBUBOOL;
 | |
| 
 | |
| typedef struct dbmoney
 | |
|     {
 | |
|     LONG mnyhigh;
 | |
|     ULONG mnylow;
 | |
|     } 	DBMONEY;
 | |
| 
 | |
| typedef struct dbdatetime
 | |
|     {
 | |
|     LONG dtdays;
 | |
|     ULONG dttime;
 | |
|     } 	DBDATETIME;
 | |
| 
 | |
| typedef struct dbdatetime4
 | |
|     {
 | |
|     USHORT numdays;
 | |
|     USHORT nummins;
 | |
|     } 	DBDATETIM4;
 | |
| 
 | |
| typedef LONG DBMONEY4;
 | |
| 
 | |
| #include <pshpack8.h>    // 8-byte structure packing
 | |
| 
 | |
| // New Date Time Structures
 | |
| // New Structure for TIME2
 | |
| typedef struct tagSS_TIME2_STRUCT
 | |
| {
 | |
|         SQLUSMALLINT   hour;
 | |
|         SQLUSMALLINT   minute;
 | |
|         SQLUSMALLINT   second;
 | |
|         SQLUINTEGER    fraction;
 | |
| } SQL_SS_TIME2_STRUCT;
 | |
| // New Structure for TIMESTAMPOFFSET
 | |
| typedef struct tagSS_TIMESTAMPOFFSET_STRUCT
 | |
| {
 | |
|         SQLSMALLINT    year;
 | |
|         SQLUSMALLINT   month;
 | |
|         SQLUSMALLINT   day;
 | |
|         SQLUSMALLINT   hour;
 | |
|         SQLUSMALLINT   minute;
 | |
|         SQLUSMALLINT   second;
 | |
|         SQLUINTEGER    fraction;
 | |
|         SQLSMALLINT    timezone_hour;
 | |
|         SQLSMALLINT    timezone_minute;
 | |
| } SQL_SS_TIMESTAMPOFFSET_STRUCT;
 | |
| #include <poppack.h>     // restore original structure packing
 | |
| 
 | |
| // Money value *10,000
 | |
| #define DBNUM_PREC_TYPE BYTE
 | |
| #define DBNUM_SCALE_TYPE BYTE
 | |
| #define DBNUM_VAL_TYPE BYTE
 | |
| 
 | |
| #if (ODBCVER < 0x0300)
 | |
| #define MAXNUMERICLEN 16
 | |
| typedef struct dbnumeric         // Internal representation of NUMERIC data type
 | |
| {
 | |
|     DBNUM_PREC_TYPE precision;   // Precision
 | |
|     DBNUM_SCALE_TYPE scale;      // Scale
 | |
|     BYTE sign;                   // Sign (1 if positive, 0 if negative)
 | |
|     DBNUM_VAL_TYPE val[MAXNUMERICLEN];// Value
 | |
| } DBNUMERIC;
 | |
| typedef DBNUMERIC DBDECIMAL;// Internal representation of DECIMAL data type
 | |
| #else //  Use ODBC 3.0 definitions since same as DBLib
 | |
| #define MAXNUMERICLEN SQL_MAX_NUMERIC_LEN
 | |
| typedef SQL_NUMERIC_STRUCT DBNUMERIC;
 | |
| typedef SQL_NUMERIC_STRUCT DBDECIMAL;
 | |
| #endif // ODCBVER
 | |
| #endif // MAXNUMERICLEN
 | |
| 
 | |
| #ifndef INT
 | |
| typedef int     INT;
 | |
| typedef long    DBINT;
 | |
| typedef DBINT * LPDBINT;
 | |
| #ifndef _LPCBYTE_DEFINED
 | |
| #define _LPCBYTE_DEFINED
 | |
| typedef BYTE const* LPCBYTE;
 | |
| #endif //_LPCBYTE_DEFINED
 | |
| #endif // INT
 | |
| /************************************************************************** 
 | |
| This struct is a global used for gathering statistical data on the driver.
 | |
| Access to this structure is controlled via the pStatCrit;
 | |
| ***************************************************************************/ 
 | |
| typedef struct sqlperf
 | |
| {
 | |
|     // Application Profile Statistics
 | |
|     DWORD TimerResolution;
 | |
|     DWORD SQLidu;
 | |
|     DWORD SQLiduRows;
 | |
|     DWORD SQLSelects;
 | |
|     DWORD SQLSelectRows;
 | |
|     DWORD Transactions;
 | |
|     DWORD SQLPrepares;
 | |
|     DWORD ExecDirects;
 | |
|     DWORD SQLExecutes;
 | |
|     DWORD CursorOpens;
 | |
|     DWORD CursorSize;
 | |
|     DWORD CursorUsed;
 | |
|     LDOUBLE PercentCursorUsed;
 | |
|     LDOUBLE AvgFetchTime;
 | |
|     LDOUBLE AvgCursorSize;
 | |
|     LDOUBLE AvgCursorUsed;
 | |
|     DWORD SQLFetchTime;
 | |
|     DWORD SQLFetchCount;
 | |
|     DWORD CurrentStmtCount;
 | |
|     DWORD MaxOpenStmt;
 | |
|     DWORD SumOpenStmt;
 | |
|     // Connection Statistics
 | |
|     DWORD CurrentConnectionCount;
 | |
|     DWORD MaxConnectionsOpened;
 | |
|     DWORD SumConnectionsOpened;
 | |
|     DWORD SumConnectiontime;
 | |
|     LDOUBLE AvgTimeOpened;
 | |
|     // Network Statistics
 | |
|     DWORD ServerRndTrips;
 | |
|     DWORD BuffersSent;
 | |
|     DWORD BuffersRec;
 | |
|     DWORD BytesSent;
 | |
|     DWORD BytesRec;
 | |
|     // Time Statistics;
 | |
|     DWORD msExecutionTime;
 | |
|     DWORD msNetWorkServerTime;
 | |
| } SQLPERF;
 | |
| // The following are options for SQL_COPT_SS_PERF_DATA and SQL_COPT_SS_PERF_QUERY
 | |
| #define SQL_PERF_START          1           // Starts the driver sampling performance data.
 | |
| #define SQL_PERF_STOP           2           // Stops the counters from sampling performance data.
 | |
| // The following are defines for SQL_COPT_SS_PERF_DATA_LOG
 | |
| #define SQL_SS_DL_DEFAULT       TEXT("STATS.LOG")
 | |
| // The following are defines for SQL_COPT_SS_PERF_QUERY_LOG
 | |
| #define SQL_SS_QL_DEFAULT       TEXT("QUERY.LOG")
 | |
| // The following are defines for SQL_COPT_SS_PERF_QUERY_INTERVAL
 | |
| #define SQL_SS_QI_DEFAULT       30000   //  30,000 milliseconds
 | |
| 
 | |
| #ifndef SQLNCLI_NO_BCP
 | |
| // Define the symbol SQLNCLI_NO_BCP if you are not using BCP in your application
 | |
| // and you want to exclude the BCP-related definitions in this header file.
 | |
| 
 | |
| // ODBC BCP prototypes and defines
 | |
| // Return codes
 | |
| #define SUCCEED                 1
 | |
| #define FAIL                    0
 | |
| #define SUCCEED_ABORT           2
 | |
| #define SUCCEED_ASYNC           3
 | |
| // Transfer directions
 | |
| #define DB_IN                   1   // Transfer from client to server
 | |
| #define DB_OUT                  2   // Transfer from server to client
 | |
| // bcp_control option
 | |
| #define BCPMAXERRS              1   // Sets max errors allowed
 | |
| #define BCPFIRST                2   // Sets first row to be copied out
 | |
| #define BCPLAST                 3   // Sets number of rows to be copied out
 | |
| #define BCPBATCH                4   // Sets input batch size
 | |
| #define BCPKEEPNULLS            5   // Sets to insert NULLs for empty input values
 | |
| #define BCPABORT                6   // Sets to have bcpexec return SUCCEED_ABORT
 | |
| #define BCPODBC                 7   // Sets ODBC canonical character output
 | |
| #define BCPKEEPIDENTITY         8   // Sets IDENTITY_INSERT on
 | |
| #if SQLNCLI_VER < 1000
 | |
| #define BCP6xFILEFMT            9   // DEPRECATED: Sets 6x file format on
 | |
| #endif
 | |
| #define BCPHINTSA               10  // Sets server BCP hints (ANSI string)
 | |
| #define BCPHINTSW               11  // Sets server BCP hints (UNICODE string)
 | |
| #define BCPFILECP               12  // Sets clients code page for the file
 | |
| #define BCPUNICODEFILE          13  // Sets that the file contains unicode header
 | |
| #define BCPTEXTFILE             14  // Sets BCP mode to expect a text file and to detect Unicode or ANSI automatically
 | |
| #define BCPFILEFMT              15  // Sets file format version
 | |
| #define BCPFMTXML               16  // Sets the format file type to xml
 | |
| #define BCPFIRSTEX              17  // Starting Row for BCP operation (64 bit)
 | |
| #define BCPLASTEX               18  // Ending Row for BCP operation (64 bit)
 | |
| #define BCPROWCOUNT             19  // Total Number of Rows Copied (64 bit)
 | |
| #define BCPDELAYREADFMT         20  // Delay reading format file unil bcp_exec
 | |
| // BCPFILECP values
 | |
| // Any valid code page that is installed on the client can be passed plus:
 | |
| #define BCPFILECP_ACP           0   // Data in file is in Windows code page
 | |
| #define BCPFILECP_OEMCP         1   // Data in file is in OEM code page (default)
 | |
| #define BCPFILECP_RAW           (-1)// Data in file is in Server code page (no conversion)
 | |
| // bcp_collen definition
 | |
| #define SQL_VARLEN_DATA (-10)   // Use default length for column
 | |
| // BCP column format properties
 | |
| #define BCP_FMT_TYPE            0x01
 | |
| #define BCP_FMT_INDICATOR_LEN   0x02
 | |
| #define BCP_FMT_DATA_LEN        0x03
 | |
| #define BCP_FMT_TERMINATOR      0x04
 | |
| #define BCP_FMT_SERVER_COL      0x05
 | |
| #define BCP_FMT_COLLATION       0x06
 | |
| #define BCP_FMT_COLLATION_ID    0x07
 | |
| // bcp_setbulkmode properties
 | |
| #define BCP_OUT_CHARACTER_MODE      0x01
 | |
| #define BCP_OUT_WIDE_CHARACTER_MODE 0x02
 | |
| #define BCP_OUT_NATIVE_TEXT_MODE    0x03
 | |
| #define BCP_OUT_NATIVE_MODE         0x04
 | |
| // BCP functions
 | |
| DBINT SQL_API bcp_batch (HDBC);
 | |
| RETCODE SQL_API bcp_bind (HDBC, LPCBYTE, INT, DBINT, LPCBYTE, INT, INT, INT);
 | |
| RETCODE SQL_API bcp_colfmt (HDBC, INT, BYTE, INT, DBINT, LPCBYTE, INT, INT);
 | |
| RETCODE SQL_API bcp_collen (HDBC, DBINT, INT);
 | |
| RETCODE SQL_API bcp_colptr (HDBC, LPCBYTE, INT);
 | |
| RETCODE SQL_API bcp_columns (HDBC, INT);
 | |
| RETCODE SQL_API bcp_control (HDBC, INT, void *);
 | |
| DBINT SQL_API bcp_done (HDBC);
 | |
| RETCODE SQL_API bcp_exec (HDBC, LPDBINT);
 | |
| RETCODE SQL_API bcp_getcolfmt (HDBC, INT, INT, void *, INT, INT *);
 | |
| RETCODE SQL_API bcp_initA (HDBC, LPCSTR, LPCSTR, LPCSTR, INT);
 | |
| RETCODE SQL_API bcp_initW (HDBC, LPCWSTR, LPCWSTR, LPCWSTR, INT);
 | |
| RETCODE SQL_API bcp_moretext (HDBC, DBINT, LPCBYTE);
 | |
| RETCODE SQL_API bcp_readfmtA (HDBC, LPCSTR);
 | |
| RETCODE SQL_API bcp_readfmtW (HDBC, LPCWSTR);
 | |
| RETCODE SQL_API bcp_sendrow (HDBC);
 | |
| RETCODE SQL_API bcp_setbulkmode (HDBC, INT, __in_bcount(cbField) void*, INT cbField, __in_bcount(cbRow) void *, INT cbRow);
 | |
| RETCODE SQL_API bcp_setcolfmt (HDBC, INT, INT, void *, INT);
 | |
| RETCODE SQL_API bcp_writefmtA (HDBC, LPCSTR);
 | |
| RETCODE SQL_API bcp_writefmtW (HDBC, LPCWSTR);
 | |
| CHAR* SQL_API dbprtypeA (INT);
 | |
| WCHAR* SQL_API dbprtypeW (INT);
 | |
| CHAR* SQL_API bcp_gettypenameA (INT, DBBOOL);
 | |
| WCHAR* SQL_API bcp_gettypenameW (INT, DBBOOL);
 | |
| #ifdef UNICODE
 | |
| #define bcp_init        bcp_initW
 | |
| #define bcp_readfmt     bcp_readfmtW
 | |
| #define bcp_writefmt    bcp_writefmtW
 | |
| #define dbprtype        dbprtypeW
 | |
| #define bcp_gettypename bcp_gettypenameW
 | |
| #define BCPHINTS        BCPHINTSW
 | |
| #else
 | |
| #define bcp_init        bcp_initA
 | |
| #define bcp_readfmt     bcp_readfmtA
 | |
| #define bcp_writefmt    bcp_writefmtA
 | |
| #define dbprtype        dbprtypeA
 | |
| #define bcp_gettypename bcp_gettypenameA
 | |
| #define BCPHINTS        BCPHINTSA
 | |
| #endif // UNICODE
 | |
| 
 | |
| #endif // SQLNCLI_NO_BCP
 | |
| 
 | |
| // The following options have been deprecated
 | |
| #define SQL_FAST_CONNECT                (SQL_COPT_SS_BASE+0)
 | |
| // Defines for use with SQL_FAST_CONNECT - only useable before connecting
 | |
| #define SQL_FC_OFF                      0L          //  Fast connect is off
 | |
| #define SQL_FC_ON                       1L          //  Fast connect is on
 | |
| #define SQL_FC_DEFAULT                  SQL_FC_OFF
 | |
| #define SQL_COPT_SS_ANSI_OEM            (SQL_COPT_SS_BASE+6)
 | |
| #define SQL_AO_OFF                      0L
 | |
| #define SQL_AO_ON                       1L
 | |
| #define SQL_AO_DEFAULT                  SQL_AO_OFF
 | |
| #define SQL_CA_SS_BASE_COLUMN_NAME      SQL_DESC_BASE_COLUMN_NAME
 | |
| 
 | |
| #endif // ODBCVER
 | |
| #endif // defined(_SQLNCLI_ODBC_) || !defined(_SQLNCLI_OLEDB_)
 | |
| // ODBC part of SQL Server Native Client header - end here!
 | |
| 
 | |
| //The following facilitates opening a handle to a SQL filestream
 | |
| typedef enum _SQL_FILESTREAM_DESIRED_ACCESS {
 | |
|             SQL_FILESTREAM_READ        = 0,
 | |
|             SQL_FILESTREAM_WRITE       = 1,
 | |
|             SQL_FILESTREAM_READWRITE   = 2
 | |
| } SQL_FILESTREAM_DESIRED_ACCESS;
 | |
| #define SQL_FILESTREAM_OPEN_FLAG_ASYNC               0x00000001L
 | |
| #define SQL_FILESTREAM_OPEN_FLAG_NO_BUFFERING        0x00000002L
 | |
| #define SQL_FILESTREAM_OPEN_FLAG_NO_WRITE_THROUGH    0x00000004L
 | |
| #define SQL_FILESTREAM_OPEN_FLAG_SEQUENTIAL_SCAN     0x00000008L
 | |
| #define SQL_FILESTREAM_OPEN_FLAG_RANDOM_ACCESS       0x00000010L
 | |
| HANDLE __stdcall OpenSqlFilestream (
 | |
|            LPCWSTR                        FilestreamPath,
 | |
|            SQL_FILESTREAM_DESIRED_ACCESS  DesiredAccess,
 | |
|            ULONG                          OpenOptions,
 | |
|            LPBYTE                         FilestreamTransactionContext,
 | |
|            SSIZE_T                        FilestreamTransactionContextLength,
 | |
|            PLARGE_INTEGER                 AllocationSize);
 | |
| #define FSCTL_SQL_FILESTREAM_FETCH_OLD_CONTENT       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2392, METHOD_BUFFERED, FILE_ANY_ACCESS)
 | |
| 
 | |
| 
 | |
| 
 | |
| #ifndef _SQLUSERINSTANCE_H_
 | |
| #define _SQLUSERINSTANCE_H_
 | |
| 
 | |
| #include <windows.h>
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| 
 | |
| //  Recommended buffer size to store a LocalDB connection string 
 | |
| #define LOCALDB_MAX_SQLCONNECTION_BUFFER_SIZE 260
 | |
| 
 | |
| // type definition for LocalDBCreateInstance function
 | |
| typedef HRESULT __cdecl FnLocalDBCreateInstance (
 | |
| 		// I			the LocalDB version (e.g. 11.0 or 11.0.1094.2)
 | |
| 		__in_z			PCWSTR	wszVersion,
 | |
| 		// I			the instance name
 | |
| 		__in_z			PCWSTR	pInstanceName,
 | |
| 		// I			reserved for the future use. Currently should be set to 0.
 | |
| 		__in			DWORD	dwFlags
 | |
| );
 | |
| 
 | |
| // type definition for pointer to LocalDBCreateInstance function
 | |
| typedef FnLocalDBCreateInstance* PFnLocalDBCreateInstance;
 | |
| 
 | |
| // type definition for LocalDBStartInstance function
 | |
| typedef HRESULT __cdecl FnLocalDBStartInstance (
 | |
| 		// I			the LocalDB instance name
 | |
| 		__in_z									PCWSTR	pInstanceName,
 | |
| 		// I			reserved for the future use. Currently should be set to 0.
 | |
| 		__in									DWORD	dwFlags,
 | |
| 		// O			the buffer to store the connection string to the LocalDB instance
 | |
| 		__out_ecount_z_opt(*lpcchSqlConnection)	LPWSTR	wszSqlConnection,
 | |
| 		// I/O			on input has the size of the wszSqlConnection buffer in characters. On output, if the given buffer size is 
 | |
| 		//				too small, has the buffer size required, in characters, including trailing null.
 | |
| 		__inout_opt								LPDWORD	lpcchSqlConnection
 | |
| );
 | |
| 
 | |
| // type definition for pointer to LocalDBStartInstance function
 | |
| typedef FnLocalDBStartInstance* PFnLocalDBStartInstance;
 | |
| 
 | |
| // Flags for the LocalDBFormatMessage function
 | |
| #define LOCALDB_TRUNCATE_ERR_MESSAGE		0x0001L
 | |
| 
 | |
| // type definition for LocalDBFormatMessage function
 | |
| typedef HRESULT __cdecl FnLocalDBFormatMessage(
 | |
| 			// I		the LocalDB error code
 | |
| 			__in							HRESULT	hrLocalDB,
 | |
| 			// I		Available flags:
 | |
| 			//			LOCALDB_TRUNCATE_ERR_MESSAGE - if the input buffer is too short,
 | |
| 			//			the error message will be truncated to fit into the buffer 
 | |
| 			__in							DWORD	dwFlags,
 | |
| 			// I		Language desired (LCID) or 0 (in which case Win32 FormatMessage order is used)
 | |
| 			__in							DWORD	dwLanguageId,
 | |
| 			// O		the buffer to store the LocalDB error message
 | |
| 			__out_ecount_z(*lpcchMessage)	LPWSTR	wszMessage,
 | |
| 			// I/O		on input has the size of the wszMessage buffer in characters. On output, if the given buffer size is 
 | |
| 			//			too small, has the buffer size required, in characters, including trailing null. If the function succeeds
 | |
| 			//			contains the number of characters in the message, excluding the trailing null
 | |
| 			__inout							LPDWORD	lpcchMessage
 | |
| );
 | |
| 
 | |
| // type definition for function pointer to LocalDBFormatMessage function
 | |
| typedef FnLocalDBFormatMessage* PFnLocalDBFormatMessage;
 | |
| 
 | |
| 
 | |
| // MessageId: LOCALDB_ERROR_NOT_INSTALLED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB is not installed.
 | |
| //
 | |
| #define LOCALDB_ERROR_NOT_INSTALLED            ((HRESULT)0x89C50116L)
 | |
| 
 | |
| //---------------------------------------------------------------------
 | |
| // Function: LocalDBCreateInstance
 | |
| //
 | |
| // Description: This function will create the new LocalDB instance.
 | |
| // 
 | |
| // Available Flags:
 | |
| //	No flags available. Reserved for future use.
 | |
| //
 | |
| // Return Values:
 | |
| //	S_OK, if the function succeeds
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_INSTANCE_NAME, if the instance name parameter is invalid
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_VERSION, if the version parameter is invalid
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_FLAGS, if the flags are invalid
 | |
| //	LOCALDB_ERROR_INVALID_OPERATION, if the user tries to create a default instance
 | |
| //	LOCALDB_ERROR_INSTANCE_FOLDER_PATH_TOO_LONG, if the path where instance should be stored is longer than MAX_PATH
 | |
| //	LOCALDB_ERROR_VERSION_REQUESTED_NOT_INSTALLED, if the specified patch level is not installed
 | |
| //	LOCALDB_ERROR_INSTANCE_FOLDER_ALREADY_EXISTS, if the instance folder already exists and is not empty
 | |
| //	LOCALDB_ERROR_INSTANCE_EXISTS_WITH_LOWER_VERSION,	if the specified instance already exists but with lower version
 | |
| //	LOCALDB_ERROR_CANNOT_CREATE_INSTANCE_FOLDER, if a folder cannot be created under %userprofile%
 | |
| //	LOCALDB_ERROR_CANNOT_GET_USER_PROFILE_FOLDER, if a user profile folder cannot be retrieved
 | |
| //	LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_FOLDER, if a instance folder cannot be accessed
 | |
| //	LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_REGISTRY, if a instance registry cannot be accessed
 | |
| //	LOCALDB_ERROR_INTERNAL_ERROR, if an unexpected error occurred. See event log for details
 | |
| //	LOCALDB_ERROR_CANNOT_MODIFY_INSTANCE_REGISTRY, if an instance registry cannot be modified
 | |
| //	LOCALDB_ERROR_CANNOT_CREATE_SQL_PROCESS, if a process for Sql Server cannot be created
 | |
| //	LOCALDB_ERROR_SQL_SERVER_STARTUP_FAILED, if a Sql Server process is started but Sql Server startup failed.
 | |
| //	LOCALDB_ERROR_INSTANCE_CONFIGURATION_CORRUPT, if a instance configuration is corrupted
 | |
| //
 | |
| FnLocalDBCreateInstance LocalDBCreateInstance;
 | |
| 
 | |
| //---------------------------------------------------------------------
 | |
| // Function: LocalDBStartInstance
 | |
| // 
 | |
| // Description: This function will start the given LocalDB instance.
 | |
| //
 | |
| // Return Values:
 | |
| //	S_OK, if the function succeeds
 | |
| //	LOCALDB_ERROR_UNKNOWN_INSTANCE, if the specified instance doesn't exist
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_INSTANCE_NAME, if the instance name parameter is invalid
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_CONNECTION, if the wszSqlConnection parameter is NULL
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_FLAGS, if the flags are invalid
 | |
| //	LOCALDB_ERROR_INSUFFICIENT_BUFFER, if the buffer wszSqlConnection is too small
 | |
| //	LOCALDB_ERROR_INSTANCE_FOLDER_PATH_TOO_LONG, if the path where instance should be stored is longer than MAX_PATH
 | |
| 
 | |
| //	LOCALDB_ERROR_CANNOT_GET_USER_PROFILE_FOLDER, if a user profile folder cannot be retrieved
 | |
| //	LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_FOLDER, if a instance folder cannot be accessed
 | |
| //	LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_REGISTRY, if a instance registry cannot be accessed
 | |
| //	LOCALDB_ERROR_INTERNAL_ERROR, if an unexpected error occurred. See event log for details
 | |
| //	LOCALDB_ERROR_CANNOT_MODIFY_INSTANCE_REGISTRY, if an instance registry cannot be modified
 | |
| //	LOCALDB_ERROR_CANNOT_CREATE_SQL_PROCESS, if a process for Sql Server cannot be created
 | |
| //	LOCALDB_ERROR_SQL_SERVER_STARTUP_FAILED, if a Sql Server process is started but Sql Server startup failed.
 | |
| //	LOCALDB_ERROR_INSTANCE_CONFIGURATION_CORRUPT, if a instance configuration is corrupted
 | |
| //
 | |
| FnLocalDBStartInstance LocalDBStartInstance;
 | |
| 
 | |
| // type definition for LocalDBStopInstance function
 | |
| typedef HRESULT __cdecl FnLocalDBStopInstance (
 | |
| 		// I			the LocalDB instance name
 | |
| 		__in_z			PCWSTR	pInstanceName,
 | |
| 		// I			Available flags:
 | |
| 		//				LOCALDB_SHUTDOWN_KILL_PROCESS	- force the instance to stop immediately
 | |
| 		//				LOCALDB_SHUTDOWN_WITH_NOWAIT	- shutdown the instance with NOWAIT option
 | |
| 		__in			DWORD	dwFlags,
 | |
| 		// I			the time in seconds to wait this operation to complete. If this value is 0, this function will return immediately
 | |
| 		//				without waiting for LocalDB instance to stop
 | |
| 		__in			ULONG	ulTimeout
 | |
| );
 | |
| 
 | |
| // type definition for pointer to LocalDBStopInstance function
 | |
| typedef FnLocalDBStopInstance* PFnLocalDBStopInstance;
 | |
| 
 | |
| // Flags for the StopLocalDBInstance function
 | |
| #define LOCALDB_SHUTDOWN_KILL_PROCESS		0x0001L
 | |
| #define LOCALDB_SHUTDOWN_WITH_NOWAIT		0x0002L
 | |
| 
 | |
| //---------------------------------------------------------------------
 | |
| // Function: LocalDBStopInstance
 | |
| //
 | |
| // Description: This function will shutdown the given LocalDB instance. 
 | |
| // If the flag LOCALDB_SHUTDOWN_KILL_PROCESS is set, the LocalDB instance will be killed immediately.
 | |
| // IF the flag LOCALDB_SHUTDOWN_WITH_NOWAIT is set, the LocalDB instance will shutdown with NOWAIT option.
 | |
| //
 | |
| // Return Values:
 | |
| //	S_OK, if the function succeeds
 | |
| //	LOCALDB_ERROR_UNKNOWN_INSTANCE, if the specified instance doesn't exist
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_INSTANCE_NAME, if the instance name parameter is invalid
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_FLAGS, if the flags are invalid
 | |
| //	LOCALDB_ERROR_WAIT_TIMEOUT - if this function has not finished in given time
 | |
| //	LOCALDB_ERROR_INTERNAL_ERROR, if an unexpected error occurred. See event log for details
 | |
| //
 | |
| FnLocalDBStopInstance LocalDBStopInstance;
 | |
| 
 | |
| // type definition for LocalDBDeleteInstance function
 | |
| typedef HRESULT __cdecl FnLocalDBDeleteInstance (
 | |
| 		// I			the LocalDB instance name
 | |
| 		__in_z			PCWSTR	pInstanceName,
 | |
| 		// I			reserved for the future use. Currently should be set to 0.
 | |
| 		__in			DWORD	dwFlags
 | |
| );
 | |
| 
 | |
| // type definition for pointer to LocalDBDeleteInstance function
 | |
| typedef FnLocalDBDeleteInstance* PFnLocalDBDeleteInstance;
 | |
| 
 | |
| //---------------------------------------------------------------------
 | |
| // Function: LocalDBDeleteInstance
 | |
| //
 | |
| // Description: This function will remove the given LocalDB instance. If the given instance is running this function will
 | |
| // fail with the error code LOCALDB_ERROR_INSTANCE_BUSY.
 | |
| //
 | |
| // Return Values:
 | |
| //	S_OK, if the function succeeds
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_INSTANCE_NAME, if the instance name parameter is invalid
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_FLAGS, if the flags are invalid
 | |
| //	LOCALDB_ERROR_UNKNOWN_INSTANCE, if the specified instance doesn't exist
 | |
| //	LOCALDB_ERROR_INSTANCE_BUSY, if the given instance is running
 | |
| //	LOCALDB_ERROR_INTERNAL_ERROR, if an unexpected error occurred. See event log for details
 | |
| //
 | |
| FnLocalDBDeleteInstance LocalDBDeleteInstance;
 | |
| 
 | |
| // Function: LocalDBFormatMessage
 | |
| //
 | |
| // Description: This function will return the localized textual description for the given LocalDB error
 | |
| //
 | |
| // Available Flags:
 | |
| //	LOCALDB_TRUNCATE_ERR_MESSAGE - the error message should be truncated to fit into the provided buffer
 | |
| //
 | |
| // Return Value:
 | |
| //	S_OK, if the function succeeds
 | |
| //
 | |
| //	LOCALDB_ERROR_UNKNOWN_HRESULT,		if the given HRESULT is unknown
 | |
| //	LOCALDB_ERROR_UNKNOWN_LANGUAGE_ID,	if the given language id is unknown (0 is recommended for the //	default language)
 | |
| //	LOCALDB_ERROR_UNKNOWN_ERROR_CODE,	if the LocalDB error code is unknown
 | |
| //	LOCALDB_ERROR_INVALID_PARAM_FLAGS,	if the flags are invalid
 | |
| //	LOCALDB_ERROR_INSUFFICIENT_BUFFER,	if the input buffer is too short and LOCALDB_TRUNCATE_ERR_MESSAGE flag 
 | |
| //										is not set
 | |
| //	LOCALDB_ERROR_INTERNAL_ERROR,		if an unexpected error occurred. See event log for details
 | |
| //
 | |
| FnLocalDBFormatMessage LocalDBFormatMessage;
 | |
| 
 | |
| #define MAX_LOCALDB_INSTANCE_NAME_LENGTH 128
 | |
| #define MAX_LOCALDB_PARENT_INSTANCE_LENGTH MAX_INSTANCE_NAME
 | |
| 
 | |
| typedef WCHAR TLocalDBInstanceName[MAX_LOCALDB_INSTANCE_NAME_LENGTH + 1];
 | |
| typedef TLocalDBInstanceName* PTLocalDBInstanceName;
 | |
| 
 | |
| // type definition for LocalDBGetInstances function
 | |
| typedef HRESULT __cdecl FnLocalDBGetInstances(
 | |
| 		// O					buffer for a LocalDB instance names
 | |
| 		__out					PTLocalDBInstanceName	pInstanceNames,
 | |
| 		// I/O					on input has the number slots for instance names in the pInstanceNames buffer. On output, 
 | |
| 		//						has the number of existing LocalDB instances
 | |
| 		__inout					LPDWORD					lpdwNumberOfInstances
 | |
| );
 | |
| 
 | |
| // type definition for pointer to LocalDBGetInstances function
 | |
| typedef FnLocalDBGetInstances* PFnLocalDBGetInstances;
 | |
| 
 | |
| // Function: LocalDBGetInstances
 | |
| // 
 | |
| // Description: This function returns names for all existing Local DB instances
 | |
| //
 | |
| // Usage Example:
 | |
| //	DWORD dwN = 0;
 | |
| //	LocalDBGetInstances(NULL, &dwN);
 | |
| 
 | |
| //	PTLocalDBInstanceName insts = (PTLocalDBInstanceName) malloc(dwN * sizeof(TLocalDBInstanceName));
 | |
| //	LocalDBGetInstances(insts, &dwN);
 | |
| 
 | |
| //	for (int i = 0; i < dwN; i++)
 | |
| //		wprintf(L"%s\n", insts[i]);
 | |
| //
 | |
| // Return values:
 | |
| //	S_OK, if the function succeeds
 | |
| //
 | |
| // LOCALDB_ERROR_INSUFFICIENT_BUFFER,			the given buffer is to small
 | |
| // LOCALDB_ERROR_INTERNAL_ERROR,		if an unexpected error occurred. See event log for details
 | |
| //
 | |
| FnLocalDBGetInstances LocalDBGetInstances;
 | |
| 
 | |
| // SID string format: S - Revision(1B) - Authority ID (6B) {- Sub authority ID (4B)} * max 15 sub-authorities = 1 + 1 + 3 + 1 + 15 + (1 + 10) * 15
 | |
| #define MAX_STRING_SID_LENGTH 186
 | |
| 
 | |
| #pragma pack(push)
 | |
| #pragma pack(8)
 | |
| 
 | |
| // DEVNOTE: If you want to modify this structure please read DEVNOTEs on top of function LocalDBGetInstanceInfo in sqluserinstance.cpp file.
 | |
| //
 | |
| typedef struct _LocalDBInstanceInfo
 | |
| {
 | |
| 	DWORD					cbLocalDBInstanceInfoSize;
 | |
| 	TLocalDBInstanceName	wszInstanceName;
 | |
| 	BOOL					bExists;
 | |
| 	BOOL					bConfigurationCorrupted;
 | |
| 	BOOL					bIsRunning;
 | |
| 	DWORD					dwMajor;
 | |
| 	DWORD					dwMinor;
 | |
| 	DWORD					dwBuild;
 | |
| 	DWORD					dwRevision;
 | |
| 	FILETIME				ftLastStartDateUTC;
 | |
| 	WCHAR					wszConnection[LOCALDB_MAX_SQLCONNECTION_BUFFER_SIZE];
 | |
| 	BOOL					bIsShared;
 | |
| 	TLocalDBInstanceName	wszSharedInstanceName;
 | |
| 	WCHAR					wszOwnerSID[MAX_STRING_SID_LENGTH + 1];
 | |
| 	BOOL					bIsAutomatic;
 | |
| } LocalDBInstanceInfo;
 | |
| 
 | |
| #pragma pack(pop)
 | |
| 
 | |
| typedef LocalDBInstanceInfo* PLocalDBInstanceInfo;
 | |
| 
 | |
| // type definition for LocalDBGetInstanceInfo function
 | |
| typedef HRESULT __cdecl FnLocalDBGetInstanceInfo(
 | |
| 		// I		the LocalDB instance name
 | |
| 		__in_z		PCWSTR					wszInstanceName, 
 | |
| 		// O		instance information
 | |
| 		__out		PLocalDBInstanceInfo	pInfo,
 | |
| 		// I		Size of LocalDBInstanceInfo structure in bytes
 | |
| 		__in		DWORD					cbInfo);
 | |
| 
 | |
| // type definition for pointer to LocalDBGetInstances function
 | |
| typedef FnLocalDBGetInstanceInfo* PFnLocalDBGetInstanceInfo;
 | |
| 
 | |
| // Function: LocalDBGetInstanceInfo
 | |
| //
 | |
| // Description: This function returns information about the given instance.
 | |
| //
 | |
| // Return values:
 | |
| //	S_OK, if the function succeeds
 | |
| //
 | |
| // ERROR_INVALID_PARAMETER, if some of the parameters is invalid
 | |
| // LOCALDB_ERROR_INTERNAL_ERROR,		if an unexpected error occurred. See event log for details
 | |
| // 
 | |
| FnLocalDBGetInstanceInfo LocalDBGetInstanceInfo;
 | |
| 
 | |
| // Version has format: Major.Minor[.Build[.Revision]]. Each of components is 32bit integer which is at most 40 digits and 3 dots
 | |
| //
 | |
| #define MAX_LOCALDB_VERSION_LENGTH 43
 | |
| 
 | |
| typedef WCHAR TLocalDBVersion[MAX_LOCALDB_VERSION_LENGTH + 1];
 | |
| typedef TLocalDBVersion* PTLocalDBVersion;
 | |
| 
 | |
| // type definition for LocalDBGetVersions function
 | |
| typedef HRESULT __cdecl FnLocalDBGetVersions(
 | |
| 		// O					buffer for installed LocalDB versions
 | |
| 		__out					PTLocalDBVersion	pVersions,
 | |
| 		// I/O					on input has the number slots for versions in the pVersions buffer. On output, 
 | |
| 		//						has the number of existing LocalDB versions
 | |
| 		__inout					LPDWORD				lpdwNumberOfVersions
 | |
| );
 | |
| 
 | |
| // type definition for pointer to LocalDBGetVersions function
 | |
| typedef FnLocalDBGetVersions* PFnLocalDBGetVersions;
 | |
| 
 | |
| // Function: LocalDBGetVersions
 | |
| // 
 | |
| // Description: This function returns all installed LocalDB versions. Returned versions will be in format Major.Minor
 | |
| //
 | |
| // Usage Example:
 | |
| //	DWORD dwN = 0;
 | |
| //	LocalDBGetVersions(NULL, &dwN);
 | |
| 
 | |
| //	PTLocalDBVersion versions = (PTLocalDBVersion) malloc(dwN * sizeof(TLocalDBVersion));
 | |
| //	LocalDBGetVersions(insts, &dwN);
 | |
| 
 | |
| //	for (int i = 0; i < dwN; i++)
 | |
| //		wprintf(L"%s\n", insts[i]);
 | |
| //
 | |
| // Return values:
 | |
| //	S_OK, if the function succeeds
 | |
| //
 | |
| // LOCALDB_ERROR_INSUFFICIENT_BUFFER,			the given buffer is to small
 | |
| // LOCALDB_ERROR_INTERNAL_ERROR,				if an unexpected error occurs.
 | |
| //
 | |
| FnLocalDBGetVersions LocalDBGetVersions;
 | |
| 
 | |
| #pragma pack(push)
 | |
| #pragma pack(8)
 | |
| 
 | |
| // DEVNOTE: If you want to modify this structure please read DEVNOTEs on top of function LocalDBGetVersionInfo in sqluserinstance.cpp file.
 | |
| //
 | |
| typedef struct _LocalDBVersionInfo
 | |
| {
 | |
| 	DWORD				cbLocalDBVersionInfoSize;
 | |
| 	TLocalDBVersion		wszVersion;
 | |
| 	BOOL				bExists;
 | |
| 	DWORD				dwMajor;
 | |
| 	DWORD				dwMinor;
 | |
| 	DWORD				dwBuild;
 | |
| 	DWORD				dwRevision;
 | |
| } LocalDBVersionInfo;
 | |
| 
 | |
| #pragma pack(pop)
 | |
| 
 | |
| typedef LocalDBVersionInfo* PLocalDBVersionInfo;
 | |
| 
 | |
| // type definition for LocalDBGetVersionInfo function
 | |
| typedef HRESULT __cdecl FnLocalDBGetVersionInfo(
 | |
| 		// I			LocalDB version string
 | |
| 		__in_z			PCWSTR					wszVersion,
 | |
| 		// O			version information
 | |
| 		__out			PLocalDBVersionInfo		pVersionInfo,
 | |
| 		// I			Size of LocalDBVersionInfo structure in bytes
 | |
| 		__in			DWORD					cbVersionInfo
 | |
| );
 | |
| 
 | |
| // type definition for pointer to LocalDBGetVersionInfo function
 | |
| typedef FnLocalDBGetVersionInfo* PFnLocalDBGetVersionInfo;
 | |
| 
 | |
| // Function: LocalDBGetVersionInfo
 | |
| // 
 | |
| // Description: This function returns information about the given LocalDB version
 | |
| //
 | |
| // Return values:
 | |
| //	S_OK, if the function succeeds
 | |
| //	LOCALDB_ERROR_INTERNAL_ERROR, if some internal error occurred
 | |
| //	LOCALDB_ERROR_INVALID_PARAMETER, if a input parameter is invalid
 | |
| //
 | |
| FnLocalDBGetVersionInfo LocalDBGetVersionInfo;
 | |
| 
 | |
| typedef HRESULT __cdecl FnLocalDBStartTracing();
 | |
| typedef FnLocalDBStartTracing* PFnLocalDBStartTracing;
 | |
| 
 | |
| // Function: LocalDBStartTracing
 | |
| //
 | |
| // Description: This function will write in registry that Tracing sessions should be started for the current user.
 | |
| //
 | |
| // Return values:
 | |
| //	S_OK - on success
 | |
| //	Propper HRESULT in case of failure
 | |
| //
 | |
| FnLocalDBStartTracing LocalDBStartTracing;
 | |
| 
 | |
| typedef HRESULT __cdecl FnLocalDBStopTracing();
 | |
| typedef FnLocalDBStopTracing* PFnFnLocalDBStopTracing;
 | |
| 
 | |
| // Function: LocalDBStopTracing
 | |
| //
 | |
| // Description: This function will write in registry that Tracing sessions should be stopped for the current user.
 | |
| //
 | |
| // Return values:
 | |
| //	S_OK - on success
 | |
| //	Propper HRESULT in case of failure
 | |
| //
 | |
| FnLocalDBStopTracing LocalDBStopTracing;
 | |
| 
 | |
| // type definition for LocalDBShareInstance function
 | |
| typedef HRESULT __cdecl FnLocalDBShareInstance(
 | |
| 		// I		the SID of the LocalDB instance owner
 | |
| 		__in_opt	PSID 					pOwnerSID, 
 | |
| 		// I		the private name of LocalDB instance which should be shared
 | |
| 		__in_z		PCWSTR					wszPrivateLocalDBInstanceName,
 | |
| 		// I		the public shared name
 | |
| 		__in_z		PCWSTR					wszSharedName,
 | |
| 		// I		reserved for the future use. Currently should be set to 0.
 | |
| 		__in		DWORD	dwFlags);
 | |
| 
 | |
| // type definition for pointer to LocalDBShareInstance function
 | |
| typedef FnLocalDBShareInstance* PFnLocalDBShareInstance;
 | |
| 
 | |
| // Function: LocalDBShareInstance
 | |
| //
 | |
| // Description: This function will share the given private instance of the given user with the given shared name.
 | |
| // This function has to be executed elevated.
 | |
| //
 | |
| // Return values:
 | |
| //	HRESULT
 | |
| //
 | |
| FnLocalDBShareInstance LocalDBShareInstance;
 | |
| 
 | |
| // type definition for LocalDBUnshareInstance function
 | |
| typedef HRESULT __cdecl FnLocalDBUnshareInstance(
 | |
| 		// I		the LocalDB instance name
 | |
| 		__in_z		PCWSTR					pInstanceName,
 | |
| 		// I		reserved for the future use. Currently should be set to 0.
 | |
| 		__in		DWORD	dwFlags);
 | |
| 
 | |
| // type definition for pointer to LocalDBUnshareInstance function
 | |
| typedef FnLocalDBUnshareInstance* PFnLocalDBUnshareInstance;
 | |
| 
 | |
| // Function: LocalDBUnshareInstance
 | |
| //
 | |
| // Description: This function unshares the given LocalDB instance.
 | |
| // If a shared name is given then that shared instance will be unshared.
 | |
| // If a private name is given then we will check if the caller
 | |
| // shares a private instance with the given private name and unshare it.
 | |
| //
 | |
| // Return values:
 | |
| //	HRESULT
 | |
| //
 | |
| FnLocalDBUnshareInstance LocalDBUnshareInstance;
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| } // extern "C"
 | |
| #endif
 | |
| 
 | |
| #if defined(LOCALDB_DEFINE_PROXY_FUNCTIONS)
 | |
| //---------------------------------------------------------------------
 | |
| // The following section is enabled only if the constant LOCALDB_DEFINE_PROXY_FUNCTIONS
 | |
| // is defined. It provides an implementation of proxies for each of the LocalDB APIs.
 | |
| // The proxy implementations use a common function to bind to entry points in the
 | |
| // latest installed SqlUserInstance DLL, and then forward the requests.
 | |
| //
 | |
| // The current implementation loads the SqlUserInstance DLL on the first call into
 | |
| // a proxy function. There is no provision for unloading the DLL. Note that if the
 | |
| // process includes multiple binaries (EXE and one or more DLLs), each of them could
 | |
| // load a separate instance of the SqlUserInstance DLL.
 | |
| //
 | |
| // For future consideration: allow the SqlUserInstance DLL to be unloaded dynamically.
 | |
| //
 | |
| // WARNING: these functions must not be called in DLL initialization, since a deadlock
 | |
| // could result loading dependent DLLs.
 | |
| //---------------------------------------------------------------------
 | |
| 
 | |
| // This macro provides the body for each proxy function.
 | |
| //
 | |
| #define LOCALDB_PROXY(LocalDBFn) static Fn##LocalDBFn* pfn##LocalDBFn = NULL; if (!pfn##LocalDBFn) {HRESULT hr = LocalDBGetPFn(#LocalDBFn, (FARPROC *)&pfn##LocalDBFn); if (FAILED(hr)) return hr;} return (*pfn##LocalDBFn)
 | |
| 
 | |
| // Structure and function to parse the "Installed Versions" registry subkeys
 | |
| //
 | |
| typedef struct {
 | |
|     DWORD dwComponent[2];
 | |
|     WCHAR wszKeyName[256];
 | |
| } Version;
 | |
| 
 | |
| // The following algorithm is intended to match, in part, the .NET Version class.
 | |
| // A maximum of two components are allowed, which must be separated with a period.
 | |
| // Valid: "11", "11.0"
 | |
| // Invalid: "", ".0", "11.", "11.0."
 | |
| //
 | |
| static BOOL ParseVersion(Version * pVersion)
 | |
| {
 | |
|     pVersion->dwComponent[0] = 0;
 | |
|     pVersion->dwComponent[1] = 0;
 | |
|     WCHAR * pwch = pVersion->wszKeyName;
 | |
| 
 | |
|     for (int i = 0; i<2; i++)
 | |
|     {
 | |
|         LONGLONG llVal = 0;
 | |
|         BOOL fHaveDigit = FALSE;
 | |
| 
 | |
|         while (*pwch >= L'0' && *pwch <= L'9')
 | |
|         {
 | |
|             llVal = llVal * 10 + (*pwch++ - L'0');
 | |
|             fHaveDigit = TRUE;
 | |
| 
 | |
|             if (llVal > 0x7fffffff)
 | |
|             {
 | |
|                 return FALSE;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         if (!fHaveDigit)
 | |
|             return FALSE;
 | |
| 
 | |
|         pVersion->dwComponent[i] = (DWORD) llVal;
 | |
| 
 | |
|         if (*pwch == L'\0')
 | |
|             return TRUE;
 | |
| 
 | |
|         if (*pwch != L'.')
 | |
|             return FALSE;
 | |
| 
 | |
|         pwch++;
 | |
|     }
 | |
|     // If we get here, the version string was terminated with L'.', which is not valid
 | |
|     //
 | |
|     return FALSE;
 | |
| }
 | |
| 
 | |
| #include <assert.h>
 | |
| 
 | |
| // This function loads the correct LocalDB API DLL (if required) and returns a pointer to a procedure.
 | |
| // Note that the first-loaded API DLL for the process will be used until process termination: installation of
 | |
| //  a new version of the API will not be recognized after first load.
 | |
| //
 | |
| static HRESULT LocalDBGetPFn(LPCSTR szLocalDBFn, FARPROC *pfnLocalDBFn)
 | |
| {
 | |
|     static volatile HMODULE hLocalDBDll = NULL;
 | |
| 
 | |
|     if (!hLocalDBDll)
 | |
|     {
 | |
|         LONG    ec;
 | |
|         HKEY    hkeyVersions = NULL;
 | |
|         HKEY    hkeyVersion = NULL;
 | |
|         Version verHigh = {0};
 | |
|         Version verCurrent;
 | |
|         DWORD   cchKeyName;
 | |
|         DWORD   dwValueType;
 | |
|         WCHAR   wszLocalDBDll[MAX_PATH+1];
 | |
|         DWORD   cbLocalDBDll = sizeof(wszLocalDBDll) - sizeof(WCHAR); // to deal with RegQueryValueEx null-termination quirk
 | |
|         HMODULE hLocalDBDllTemp = NULL;
 | |
| 
 | |
|         if (ERROR_SUCCESS != (ec = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Microsoft SQL Server Local DB\\Installed Versions", 0, KEY_READ, &hkeyVersions)))
 | |
|         {
 | |
|             goto Cleanup;
 | |
|         }
 | |
| 
 | |
|         for (int i = 0; ; i++)
 | |
|         {
 | |
|             cchKeyName = 256;
 | |
|             if (ERROR_SUCCESS != (ec = RegEnumKeyExW(hkeyVersions, i, verCurrent.wszKeyName, &cchKeyName, 0, NULL, NULL, NULL)))
 | |
|             {
 | |
|                 if (ERROR_NO_MORE_ITEMS == ec)
 | |
|                 {
 | |
|                     break;
 | |
|                 }
 | |
|                 goto Cleanup;
 | |
|             }
 | |
| 
 | |
|             if (!ParseVersion(&verCurrent))
 | |
|             {
 | |
|                 continue; // invalid version syntax
 | |
|             }
 | |
| 
 | |
|             if (verCurrent.dwComponent[0] > verHigh.dwComponent[0] ||
 | |
|                 (verCurrent.dwComponent[0] == verHigh.dwComponent[0] && verCurrent.dwComponent[1] > verHigh.dwComponent[1]))
 | |
|             {
 | |
|                 verHigh = verCurrent;
 | |
|             }
 | |
|         }
 | |
|         if (!verHigh.wszKeyName[0])
 | |
|         {
 | |
|             // ec must be ERROR_NO_MORE_ITEMS here
 | |
|             //
 | |
|             assert(ec == ERROR_NO_MORE_ITEMS);
 | |
| 
 | |
|             // We will change the error code to ERROR_FILE_NOT_FOUND in order to indicate that
 | |
|             // LocalDB instalation is not found. Registry key "SOFTWARE\\Microsoft\\Microsoft SQL Server Local DB\\Installed Versions" exists
 | |
|             // but it is empty.
 | |
|             //
 | |
|             ec = ERROR_FILE_NOT_FOUND;
 | |
|             goto Cleanup;
 | |
|         }
 | |
| 
 | |
|         if (ERROR_SUCCESS != (ec = RegOpenKeyExW(hkeyVersions, verHigh.wszKeyName, 0, KEY_READ, &hkeyVersion)))
 | |
|         {
 | |
|             goto Cleanup;
 | |
|         }
 | |
|         if (ERROR_SUCCESS != (ec = RegQueryValueExW(hkeyVersion, L"InstanceAPIPath", NULL, &dwValueType, (PBYTE) wszLocalDBDll, &cbLocalDBDll)))
 | |
|         {
 | |
|             goto Cleanup;
 | |
|         }
 | |
|         if (dwValueType != REG_SZ)
 | |
|         {
 | |
|             ec = ERROR_INVALID_DATA;
 | |
|             goto Cleanup;
 | |
|         }
 | |
|         // Ensure string value null-terminated
 | |
|         // Note that we left a spare character in the output buffer for RegQueryValueEx for this purpose
 | |
|         //
 | |
|         wszLocalDBDll[cbLocalDBDll/sizeof(WCHAR)] = L'\0';
 | |
| 
 | |
|         hLocalDBDllTemp = LoadLibraryW(wszLocalDBDll);
 | |
|         if (NULL == hLocalDBDllTemp)
 | |
|         {
 | |
|             ec = GetLastError();
 | |
|             goto Cleanup;
 | |
|         }
 | |
|         if (NULL == InterlockedCompareExchangePointer((volatile PVOID *)&hLocalDBDll, hLocalDBDllTemp, NULL))
 | |
|         {
 | |
|             // We were the winner: we gave away our DLL handle
 | |
|             //
 | |
|             hLocalDBDllTemp = NULL;
 | |
|         }
 | |
|         ec = ERROR_SUCCESS;
 | |
| Cleanup:
 | |
|         if (hLocalDBDllTemp)
 | |
|             FreeLibrary(hLocalDBDllTemp);
 | |
|         if (hkeyVersion)
 | |
|             RegCloseKey(hkeyVersion);
 | |
|         if (hkeyVersions)
 | |
|             RegCloseKey(hkeyVersions);
 | |
| 
 | |
|         // Error code ERROR_FILE_NOT_FOUND can occure if registry hive with installed LocalDB versions is missing.
 | |
|         // In that case we should return the LocalDB specific error code
 | |
|         //
 | |
|         if (ec == ERROR_FILE_NOT_FOUND)
 | |
|             return LOCALDB_ERROR_NOT_INSTALLED;
 | |
| 
 | |
|         if (ec != ERROR_SUCCESS)
 | |
|             return HRESULT_FROM_WIN32(ec);
 | |
|     }
 | |
| 
 | |
|     FARPROC pfn = GetProcAddress(hLocalDBDll, szLocalDBFn);
 | |
| 
 | |
|     if (!pfn)
 | |
|     {
 | |
|        return HRESULT_FROM_WIN32(GetLastError());
 | |
|     }
 | |
|     *pfnLocalDBFn = pfn;
 | |
|     return S_OK;
 | |
| }
 | |
| 
 | |
| // The following proxy functions forward calls to the latest LocalDB API DLL.
 | |
| //
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBCreateInstance (
 | |
| 		// I			the LocalDB version (e.g. 11.0 or 11.0.1094.2)
 | |
| 		__in_z			PCWSTR	wszVersion,
 | |
| 		// I			the instance name
 | |
| 		__in_z			PCWSTR	pInstanceName,
 | |
| 		// I			reserved for the future use. Currently should be set to 0.
 | |
| 		__in			DWORD	dwFlags
 | |
| )
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBCreateInstance)(wszVersion, pInstanceName, dwFlags);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBStartInstance(
 | |
| 		// I			the instance name
 | |
| 		__in_z										PCWSTR	pInstanceName,
 | |
| 		// I			reserved for the future use. Currently should be set to 0.
 | |
| 		__in										DWORD	dwFlags,
 | |
| 		// O			the buffer to store the connection string to the LocalDB instance
 | |
| 		__out_ecount_z_opt(*lpcchSqlConnection)		LPWSTR	wszSqlConnection,
 | |
| 		// I/O			on input has the size of the wszSqlConnection buffer in characters. On output, if the given buffer size is 
 | |
| 		//				too small, has the buffer size required, in characters, including trailing null.
 | |
| 		__inout_opt									LPDWORD	lpcchSqlConnection
 | |
| )
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBStartInstance)(pInstanceName, dwFlags, wszSqlConnection, lpcchSqlConnection);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBStopInstance (
 | |
| 		// I			the instance name
 | |
| 		__in_z			PCWSTR	pInstanceName,
 | |
| 		// I			Available flags:
 | |
| 		//				LOCALDB_SHUTDOWN_KILL_PROCESS		- force the instance to stop immediately
 | |
| 		//				LOCALDB_SHUTDOWN_WITH_NOWAIT	- shutdown the instance with NOWAIT option
 | |
| 		__in			DWORD	dwFlags,
 | |
| 		// I			the time in seconds to wait this operation to complete. If this value is 0, this function will return immediately
 | |
| 		//				without waiting for LocalDB instance to stop
 | |
| 		__in			ULONG	ulTimeout
 | |
| )
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBStopInstance)(pInstanceName, dwFlags, ulTimeout);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBDeleteInstance (
 | |
| 		// I			the instance name
 | |
| 		__in_z			PCWSTR	pInstanceName,
 | |
| 		//				reserved for the future use. Currently should be set to 0.
 | |
| 		__in			DWORD	dwFlags
 | |
| )
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBDeleteInstance)(pInstanceName, dwFlags);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBFormatMessage(
 | |
| 			// I		the LocalDB error code
 | |
| 			__in								HRESULT	hrLocalDB,
 | |
| 			// I		Available flags:
 | |
| 			//			LOCALDB_TRUNCATE_ERR_MESSAGE - if the input buffer is too short,
 | |
| 			//			the error message will be truncated to fit into the buffer 
 | |
| 			__in								DWORD	dwFlags,
 | |
| 			// I		Language desired (LCID) or 0 (in which case Win32 FormatMessage order is used)
 | |
| 			__in								DWORD	dwLanguageId,
 | |
| 			// O		the buffer to store the LocalDB error message
 | |
| 			__out_ecount_z(*lpcchMessage)		LPWSTR	wszMessage,
 | |
| 			// I/O		on input has the size of the wszMessage buffer in characters. On output, if the given buffer size is 
 | |
| 			//			too small, has the buffer size required, in characters, including trailing null. If the function succeeds
 | |
| 			//			contains the number of characters in the message, excluding the trailing null
 | |
| 			__inout								LPDWORD	lpcchMessage
 | |
| )
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBFormatMessage)(hrLocalDB, dwFlags, dwLanguageId, wszMessage, lpcchMessage);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBGetInstances(
 | |
| 		// O					buffer with instance names
 | |
| 		__out					PTLocalDBInstanceName	pInstanceNames,
 | |
| 		// I/O					on input has the number slots for instance names in the pInstanceNames buffer. On output, 
 | |
| 		//						has the number of existing LocalDB instances
 | |
| 		__inout					LPDWORD					lpdwNumberOfInstances
 | |
| )
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBGetInstances)(pInstanceNames, lpdwNumberOfInstances);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBGetInstanceInfo(
 | |
| 		// I		the instance name
 | |
| 		__in_z		PCWSTR					wszInstanceName, 
 | |
| 		// O		instance information
 | |
| 		__out		PLocalDBInstanceInfo	pInfo,
 | |
| 		// I		Size of LocalDBInstanceInfo structure in bytes
 | |
| 		__in		DWORD					cbInfo
 | |
| )
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBGetInstanceInfo)(wszInstanceName, pInfo, cbInfo);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBStartTracing()
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBStartTracing)();
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBStopTracing()
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBStopTracing)();
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl 
 | |
| LocalDBShareInstance(
 | |
| 		// I		the SID of the LocalDB instance owner
 | |
| 		__in_opt	PSID 					pOwnerSID, 
 | |
| 		// I		the private name of LocalDB instance which should be shared
 | |
| 		__in_z		PCWSTR					wszLocalDBInstancePrivateName,
 | |
| 		// I		the public shared name
 | |
| 		__in_z		PCWSTR					wszSharedName,
 | |
| 		// I		reserved for the future use. Currently should be set to 0.
 | |
| 		__in		DWORD	dwFlags)
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBShareInstance)(pOwnerSID, wszLocalDBInstancePrivateName, wszSharedName, dwFlags);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBGetVersions(
 | |
| 		// O					buffer for installed LocalDB versions
 | |
| 		__out					PTLocalDBVersion	pVersions,
 | |
| 		// I/O					on input has the number slots for versions in the pVersions buffer. On output, 
 | |
| 		//						has the number of existing LocalDB versions
 | |
| 		__inout					LPDWORD				lpdwNumberOfVersions
 | |
| )
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBGetVersions)(pVersions, lpdwNumberOfVersions);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl
 | |
| LocalDBUnshareInstance(
 | |
| 		// I		the LocalDB instance name
 | |
| 		__in_z		PCWSTR					pInstanceName,
 | |
| 		// I		reserved for the future use. Currently should be set to 0.
 | |
| 		__in		DWORD	dwFlags)
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBUnshareInstance)(pInstanceName, dwFlags);
 | |
| }
 | |
| 
 | |
| HRESULT __cdecl 
 | |
| LocalDBGetVersionInfo(
 | |
| 		// I			LocalDB version string
 | |
| 		__in_z			PCWSTR						wszVersion,
 | |
| 		// O			version information
 | |
| 		__out			PLocalDBVersionInfo			pVersionInfo,
 | |
| 		// I			Size of LocalDBVersionInfo structure in bytes
 | |
| 		__in			DWORD						cbVersionInfo)
 | |
| {
 | |
| 	LOCALDB_PROXY(LocalDBGetVersionInfo)(wszVersion, pVersionInfo, cbVersionInfo);
 | |
| }
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #endif	// _SQLUSERINSTANCE_H_
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // File:			sqluserinstancemsgs.mc
 | |
| //
 | |
| // Copyright:		Copyright (c) Microsoft Corporation
 | |
| //-----------------------------------------------------------------------------
 | |
| #ifndef _LOCALDB_MESSAGES_H_
 | |
| #define _LOCALDB_MESSAGES_H_
 | |
| // Header section
 | |
| //
 | |
| // Section with the LocalDB messages
 | |
| //
 | |
| //
 | |
| //  Values are 32 bit values laid out as follows:
 | |
| //
 | |
| //   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
 | |
| //   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
 | |
| //  +-+-+-+-+-+---------------------+-------------------------------+
 | |
| //  |S|R|C|N|r|    Facility         |               Code            |
 | |
| //  +-+-+-+-+-+---------------------+-------------------------------+
 | |
| //
 | |
| //  where
 | |
| //
 | |
| //      S - Severity - indicates success/fail
 | |
| //
 | |
| //          0 - Success
 | |
| //          1 - Fail (COERROR)
 | |
| //
 | |
| //      R - reserved portion of the facility code, corresponds to NT's
 | |
| //              second severity bit.
 | |
| //
 | |
| //      C - reserved portion of the facility code, corresponds to NT's
 | |
| //              C field.
 | |
| //
 | |
| //      N - reserved portion of the facility code. Used to indicate a
 | |
| //              mapped NT status value.
 | |
| //
 | |
| //      r - reserved portion of the facility code. Reserved for internal
 | |
| //              use. Used to indicate HRESULT values that are not status
 | |
| //              values, but are instead message ids for display strings.
 | |
| //
 | |
| //      Facility - is the facility code
 | |
| //
 | |
| //      Code - is the facility's status code
 | |
| //
 | |
| //
 | |
| // Define the facility codes
 | |
| //
 | |
| #define FACILITY_LOCALDB                 0x9C5
 | |
| 
 | |
| 
 | |
| //
 | |
| // Define the severity codes
 | |
| //
 | |
| #define LOCALDB_SEVERITY_SUCCESS         0x0
 | |
| #define LOCALDB_SEVERITY_ERROR           0x2
 | |
| 
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CANNOT_CREATE_INSTANCE_FOLDER
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Cannot create folder for the LocalDB instance at: %%LOCALAPPDATA%%\Microsoft\Microsoft SQL Server Local DB\Instances\<instance name>.
 | |
| //
 | |
| #define LOCALDB_ERROR_CANNOT_CREATE_INSTANCE_FOLDER ((HRESULT)0x89C50100L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INVALID_PARAMETER
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The parameter for the LocalDB Instance API method is incorrect. Consult the API documentation.
 | |
| //
 | |
| #define LOCALDB_ERROR_INVALID_PARAMETER  ((HRESULT)0x89C50101L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INSTANCE_EXISTS_WITH_LOWER_VERSION
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Unable to create the LocalDB instance with specified version. An instance with the same name already exists, but it has lower version than the specified version.
 | |
| //
 | |
| #define LOCALDB_ERROR_INSTANCE_EXISTS_WITH_LOWER_VERSION ((HRESULT)0x89C50102L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CANNOT_GET_USER_PROFILE_FOLDER
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Cannot access the user profile folder for local application data (%%LOCALAPPDATA%%).
 | |
| //
 | |
| #define LOCALDB_ERROR_CANNOT_GET_USER_PROFILE_FOLDER ((HRESULT)0x89C50103L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INSTANCE_FOLDER_PATH_TOO_LONG
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The full path length of the LocalDB instance folder is longer than MAX_PATH. The instance must be stored in folder: %%LOCALAPPDATA%%\Microsoft\Microsoft SQL Server Local DB\Instances\<instance name>.
 | |
| //
 | |
| #define LOCALDB_ERROR_INSTANCE_FOLDER_PATH_TOO_LONG ((HRESULT)0x89C50104L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_FOLDER
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Cannot access LocalDB instance folder: %%LOCALAPPDATA%%\Microsoft\Microsoft SQL Server Local DB\Instances\<instance name>.
 | |
| //
 | |
| #define LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_FOLDER ((HRESULT)0x89C50105L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_REGISTRY
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Unexpected error occurred while trying to access the LocalDB instance registry configuration. See the Windows Application event log for error details.
 | |
| //
 | |
| #define LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_REGISTRY ((HRESULT)0x89C50106L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_UNKNOWN_INSTANCE
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The specified LocalDB instance does not exist.
 | |
| //
 | |
| #define LOCALDB_ERROR_UNKNOWN_INSTANCE   ((HRESULT)0x89C50107L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INTERNAL_ERROR
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Unexpected error occurred inside a LocalDB instance API method call. See the Windows Application event log for error details.
 | |
| //
 | |
| #define LOCALDB_ERROR_INTERNAL_ERROR     ((HRESULT)0x89C50108L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CANNOT_MODIFY_INSTANCE_REGISTRY
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Unexpected error occurred while trying to modify the registry configuration for the LocalDB instance. See the Windows Application event log for error details.
 | |
| //
 | |
| #define LOCALDB_ERROR_CANNOT_MODIFY_INSTANCE_REGISTRY ((HRESULT)0x89C50109L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_SQL_SERVER_STARTUP_FAILED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Error occurred during LocalDB instance startup: SQL Server process failed to start.
 | |
| //
 | |
| #define LOCALDB_ERROR_SQL_SERVER_STARTUP_FAILED ((HRESULT)0x89C5010AL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INSTANCE_CONFIGURATION_CORRUPT
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB instance is corrupted. See the Windows Application event log for error details.
 | |
| //
 | |
| #define LOCALDB_ERROR_INSTANCE_CONFIGURATION_CORRUPT ((HRESULT)0x89C5010BL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CANNOT_CREATE_SQL_PROCESS
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Error occurred during LocalDB instance startup: unable to create the SQL Server process.
 | |
| //
 | |
| #define LOCALDB_ERROR_CANNOT_CREATE_SQL_PROCESS ((HRESULT)0x89C5010CL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_UNKNOWN_VERSION
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The specified LocalDB version is not available on this computer.
 | |
| //
 | |
| #define LOCALDB_ERROR_UNKNOWN_VERSION    ((HRESULT)0x89C5010DL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_UNKNOWN_LANGUAGE_ID
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Error getting the localized error message. The language specified by 'Language ID' parameter is unknown.
 | |
| //
 | |
| #define LOCALDB_ERROR_UNKNOWN_LANGUAGE_ID ((HRESULT)0x89C5010EL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INSTANCE_STOP_FAILED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Stop operation for LocalDB instance failed to complete within the specified time.
 | |
| //
 | |
| #define LOCALDB_ERROR_INSTANCE_STOP_FAILED ((HRESULT)0x89C5010FL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_UNKNOWN_ERROR_CODE
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Error getting the localized error message. The specified error code is unknown.
 | |
| //
 | |
| #define LOCALDB_ERROR_UNKNOWN_ERROR_CODE ((HRESULT)0x89C50110L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_VERSION_REQUESTED_NOT_INSTALLED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The LocalDB version available on this workstation is lower than the requested LocalDB version.
 | |
| //
 | |
| #define LOCALDB_ERROR_VERSION_REQUESTED_NOT_INSTALLED ((HRESULT)0x89C50111L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INSTANCE_BUSY
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Requested operation on LocalDB instance cannot be performed because specified instance is currently in use. Stop the instance and try again.
 | |
| //
 | |
| #define LOCALDB_ERROR_INSTANCE_BUSY      ((HRESULT)0x89C50112L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INVALID_OPERATION
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Default LocalDB instances cannot be created, stopped or deleted manually.
 | |
| //
 | |
| #define LOCALDB_ERROR_INVALID_OPERATION  ((HRESULT)0x89C50113L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INSUFFICIENT_BUFFER
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The buffer passed to the LocalDB instance API method has insufficient size.
 | |
| //
 | |
| #define LOCALDB_ERROR_INSUFFICIENT_BUFFER ((HRESULT)0x89C50114L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_WAIT_TIMEOUT
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Timeout occurred inside the LocalDB instance API method.
 | |
| //
 | |
| #define LOCALDB_ERROR_WAIT_TIMEOUT       ((HRESULT)0x89C50115L)
 | |
| 
 | |
| // MessageId=0x0116 message id is reserved. This message ID will be used for error LOCALDB_ERROR_NOT_INSTALLED.
 | |
| // This message is specific since it has to be present in SqlUserIntsnace.h because it can be returned by discovery API.
 | |
| //
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_XEVENT_FAILED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Failed to start XEvent engine within the LocalDB Instance API.
 | |
| //
 | |
| #define LOCALDB_ERROR_XEVENT_FAILED      ((HRESULT)0x89C50117L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_AUTO_INSTANCE_CREATE_FAILED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Cannot create an automatic instance. See the Windows Application event log for error details.
 | |
| //
 | |
| #define LOCALDB_ERROR_AUTO_INSTANCE_CREATE_FAILED ((HRESULT)0x89C50118L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_SHARED_NAME_TAKEN
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Cannot create a shared instance. The specified shared instance name is already in use.
 | |
| //
 | |
| #define LOCALDB_ERROR_SHARED_NAME_TAKEN  ((HRESULT)0x89C50119L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CALLER_IS_NOT_OWNER
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // API caller is not LocalDB instance owner.
 | |
| //
 | |
| #define LOCALDB_ERROR_CALLER_IS_NOT_OWNER ((HRESULT)0x89C5011AL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INVALID_INSTANCE_NAME
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Specified LocalDB instance name is invalid.
 | |
| //
 | |
| #define LOCALDB_ERROR_INVALID_INSTANCE_NAME ((HRESULT)0x89C5011BL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INSTANCE_ALREADY_SHARED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The specified LocalDB instance is already shared with different shared name.
 | |
| //
 | |
| #define LOCALDB_ERROR_INSTANCE_ALREADY_SHARED ((HRESULT)0x89C5011CL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_INSTANCE_NOT_SHARED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The specified LocalDB instance is not shared.
 | |
| //
 | |
| #define LOCALDB_ERROR_INSTANCE_NOT_SHARED ((HRESULT)0x89C5011DL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_ADMIN_RIGHTS_REQUIRED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Administrator privileges are required in order to execute this operation.
 | |
| //
 | |
| #define LOCALDB_ERROR_ADMIN_RIGHTS_REQUIRED ((HRESULT)0x89C5011EL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_TOO_MANY_SHARED_INSTANCES
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Unable to share a LocalDB instance - maximum number of shared LocalDB instances reached.
 | |
| //
 | |
| #define LOCALDB_ERROR_TOO_MANY_SHARED_INSTANCES ((HRESULT)0x89C5011FL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CANNOT_GET_LOCAL_APP_DATA_PATH
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Cannot get a local application data path. Most probably a user profile is not loaded. If LocalDB is executed under IIS, make sure that profile loading is enabled for the current user.
 | |
| //
 | |
| #define LOCALDB_ERROR_CANNOT_GET_LOCAL_APP_DATA_PATH ((HRESULT)0x89C50120L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_ERROR_CANNOT_LOAD_RESOURCES
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Cannot load resources for this DLL. Resources for this DLL should be stored in a subfolder Resources, with the same file name as this DLL and the extension ".RLL".
 | |
| //
 | |
| #define LOCALDB_ERROR_CANNOT_LOAD_RESOURCES ((HRESULT)0x89C50121L)
 | |
| 
 | |
|  // Detailed error descriptions
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_DATADIRECTORY_IS_MISSING
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The "DataDirectory" registry value is missing in the LocalDB instance registry key: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_DATADIRECTORY_IS_MISSING ((HRESULT)0x89C50200L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_CANNOT_ACCESS_INSTANCE_FOLDER
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Cannot access LocalDB instance folder: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_CANNOT_ACCESS_INSTANCE_FOLDER ((HRESULT)0x89C50201L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_DATADIRECTORY_IS_TOO_LONG
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The "DataDirectory" registry value is too long in the LocalDB instance registry key: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_DATADIRECTORY_IS_TOO_LONG ((HRESULT)0x89C50202L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_PARENT_INSTANCE_IS_MISSING
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The "Parent Instance" registry value is missing in the LocalDB instance registry key: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_PARENT_INSTANCE_IS_MISSING ((HRESULT)0x89C50203L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_PARENT_INSTANCE_IS_TOO_LONG
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // The "Parent Instance" registry value is too long in the LocalDB instance registry key: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_PARENT_INSTANCE_IS_TOO_LONG ((HRESULT)0x89C50204L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_DATA_DIRECTORY_INVALID
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Data directory for LocalDB instance is invalid: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_DATA_DIRECTORY_INVALID ((HRESULT)0x89C50205L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_XEVENT_ASSERT
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB instance API: XEvent engine assert: %1 in %2:%3 (%4)
 | |
| //
 | |
| #define LOCALDB_EDETAIL_XEVENT_ASSERT    ((HRESULT)0x89C50206L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_XEVENT_ERROR
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB instance API: XEvent error: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_XEVENT_ERROR     ((HRESULT)0x89C50207L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_INSTALLATION_CORRUPTED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB installation is corrupted. Reinstall the LocalDB.
 | |
| //
 | |
| #define LOCALDB_EDETAIL_INSTALLATION_CORRUPTED ((HRESULT)0x89C50208L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_CANNOT_GET_PROGRAM_FILES_LOCATION
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB XEvent error: cannot determine %ProgramFiles% folder location.
 | |
| //
 | |
| #define LOCALDB_EDETAIL_CANNOT_GET_PROGRAM_FILES_LOCATION ((HRESULT)0x89C50209L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_XEVENT_CANNOT_INITIALIZE
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB XEvent error: Cannot initialize XEvent engine.
 | |
| //
 | |
| #define LOCALDB_EDETAIL_XEVENT_CANNOT_INITIALIZE ((HRESULT)0x89C5020AL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_XEVENT_CANNOT_FIND_CONF_FILE
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB XEvent error: Cannot find XEvents configuration file: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_XEVENT_CANNOT_FIND_CONF_FILE ((HRESULT)0x89C5020BL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_XEVENT_CANNOT_CONFIGURE
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB XEvent error: Cannot configure XEvents engine with the configuration file: %1
 | |
| // HRESULT returned: %2
 | |
| //
 | |
| #define LOCALDB_EDETAIL_XEVENT_CANNOT_CONFIGURE ((HRESULT)0x89C5020CL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_XEVENT_CONF_FILE_NAME_TOO_LONG
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB XEvent error: XEvents engine configuration file too long
 | |
| //
 | |
| #define LOCALDB_EDETAIL_XEVENT_CONF_FILE_NAME_TOO_LONG ((HRESULT)0x89C5020DL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_COINITIALIZEEX_FAILED
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // CoInitializeEx API failed. HRESULT returned: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_COINITIALIZEEX_FAILED ((HRESULT)0x89C5020EL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_PARENT_INSTANCE_VERSION_INVALID
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // LocalDB parent instance version is invalid: %1
 | |
| //
 | |
| #define LOCALDB_EDETAIL_PARENT_INSTANCE_VERSION_INVALID ((HRESULT)0x89C5020FL)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_WINAPI_ERROR
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Windows API call %1 returned error code: %2. Windows system error message is: %3Reported at line: %4. %5
 | |
| //
 | |
| #define LOCALDB_EDETAIL_WINAPI_ERROR     ((HRESULT)0xC9C50210L)
 | |
| 
 | |
| //
 | |
| // MessageId: LOCALDB_EDETAIL_UNEXPECTED_RESULT
 | |
| //
 | |
| // MessageText:
 | |
| //
 | |
| // Function %1 returned %2 at line %3.
 | |
| //
 | |
| #define LOCALDB_EDETAIL_UNEXPECTED_RESULT ((HRESULT)0x89C50211L)
 | |
| 
 | |
| //
 | |
| #endif
 | |
| 
 | |
| 
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0011_v0_0_c_ifspec;
 | |
| extern RPC_IF_HANDLE __MIDL_itf_sqlncli_0000_0011_v0_0_s_ifspec;
 | |
| 
 | |
| /* Additional Prototypes for ALL interfaces */
 | |
| 
 | |
| /* end of Additional Prototypes */
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif
 | |
| 
 | |
| 
 |