1. Dongsheng Song
  2. osb

Commits

Dongsheng Song  committed 2d74f30

Add Microsoft SQL Server 2012 SP1 Native Client

  • Participants
  • Parent commits d495f11
  • Branches master

Comments (0)

Files changed (20)

File misc/sqlserver-builds.txt

View file
+LastUpdate: 2013-01-05
+
+http://sqlserverbuilds.blogspot.com/
+http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&alpha=SQL
+
+SELECT SERVERPROPERTY('productversion') AS Build, SERVERPROPERTY ('productlevel') AS Level, SERVERPROPERTY ('edition') as Edition
+
+Microsoft SQL Server 2014
+Build           SQLSERVR.EXE        KB/Description                      Date Updated
+
+Microsoft SQL Server 2012 (SOL 5/20/2012 - EOL 7/11/2017, 7/12/2022)
+Build           SQLSERVR.EXE        KB/Description                      Date Updated
+11.00.3321      2011.110.3321.0     SQL Server 2012 SP1 CU1             November 20, 2012
+11.00.3000      2011.110.3000.0     SQL Server 2012 SP1                 November 6, 2012
+11.00.2100      2011.110.2100.60    SQL Server 2012 RTM                 March 6, 2012
+
+Microsoft SQL Server 2008 R2 (SOL 7/20/2010 - EOL 7/8/2014, 7/9/2019)
+Build           SQLSERVR.EXE        KB/Description                      Date Updated
+10.50.4270      2009.100.4270.0     SQL Server 2008 R2 SP2 CU4          December 17, 2012
+10.50.4000      2009.100.4000.0     SQL Server 2008 R2 SP2              July 26, 2012
+10.50.2500      2009.100.2500.0     SQL Server 2008 R2 SP1              July 11, 2011
+10.50.1600      2009.100.1600.1     SQL Server 2008 R2 RTM              April 21, 2010
+
+Microsoft SQL Server 2008 (SOL 11/7/2008 - EO 7/8/2014, 7/9/2019)
+Build           SQLSERVR.EXE        KB/Description                      Date Updated
+10.00.5828      2007.100.5828.0     SQL Server 2008 SP3 CU8             November 19, 2012
+10.00.5500      2007.100.5500.0     SQL Server 2008 SP3                 October 6, 2011
+10.00.4000      2007.100.4000.0     SQL Server 2008 SP2                 September 29, 2010
+10.00.2531      2007.100.2531.0     SQL Server 2008 SP1                 April 7, 2009
+10.00.1600      2008.100.1600.22    SQL Server 2008 RTM                 August 7, 2008

File misc/sqlserver-ncli.txt

View file
+LastUpdate: 2013-01-05
+
+*) Microsoft® SQL Server® 2008 R2 SP2 Feature Pack
+http://www.microsoft.com/en-us/download/details.aspx?id=30440
+http://download.microsoft.com/download/F/7/B/F7B7A246-6B35-40E9-8509-72D2F8D63B80/sqlncli_x86.msi
+http://download.microsoft.com/download/F/7/B/F7B7A246-6B35-40E9-8509-72D2F8D63B80/sqlncli_amd64.msi
+http://download.microsoft.com/download/F/7/B/F7B7A246-6B35-40E9-8509-72D2F8D63B80/SqlCmdLnUtils_x86.msi
+http://download.microsoft.com/download/F/7/B/F7B7A246-6B35-40E9-8509-72D2F8D63B80/SqlCmdLnUtils_amd64.msi
+
+Version:        10.50.4000.0
+Date published: 7/26/2012
+
+*) Microsoft® SQL Server® 2012 SP1 Feature Pack
+http://www.microsoft.com/en-us/download/details.aspx?id=35580
+http://download.microsoft.com/download/4/B/1/4B1E9B0E-A4F3-4715-B417-31C82302A70A/ENU/x86/sqlncli.msi
+http://download.microsoft.com/download/4/B/1/4B1E9B0E-A4F3-4715-B417-31C82302A70A/ENU/x86/SqlCmdLnUtils.msi
+http://download.microsoft.com/download/4/B/1/4B1E9B0E-A4F3-4715-B417-31C82302A70A/ENU/x64/sqlncli.msi
+http://download.microsoft.com/download/4/B/1/4B1E9B0E-A4F3-4715-B417-31C82302A70A/ENU/x64/SqlCmdLnUtils.msi
+
+Version:        11.0.3000.0
+Date published: 11/13/2012
+
+*) Visual C++ 2010 SP1 Redistributable - 10.0.40219
+Version:        2010 SP1
+Date published: 3/3/2011
+
+Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)
+http://www.microsoft.com/en-us/download/details.aspx?id=8328
+http://download.microsoft.com/download/C/6/D/C6D0FD4E-9E53-4897-9B91-836EBA2AACD3/vcredist_x86.exe
+
+Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)
+http://www.microsoft.com/en-us/download/details.aspx?id=13523
+http://download.microsoft.com/download/A/8/0/A80747C3-41BD-45DF-B505-E9710D2744E0/vcredist_x64.exe
+
+*) MS11-025: The security update for Visual C++ 2010 Service Pack 1: August 9, 2011
+Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update
+http://www.microsoft.com/en-us/download/details.aspx?id=26999
+http://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x64.exe
+http://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe
+
+*) Visual C++ Redistributable for Visual Studio 2012 Update 1 - 11.0.51106
+http://www.microsoft.com/en-us/download/details.aspx?id=30679
+http://download.microsoft.com/download/1/6/b/16b06f60-3b20-4ff2-b699-5e9b7962f9ae/VSU1/vcredist_x64.exe
+http://download.microsoft.com/download/1/6/b/16b06f60-3b20-4ff2-b699-5e9b7962f9ae/VSU1/vcredist_x86.exe
+Version:        2012.1
+Date published: 11/26/2012

File windows-x64-msvcr100/bin/sqlncli11.dll

Binary file added.

File windows-x64-msvcr100/include/sqlncli.h

View file
+
+
+/* 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;
+        
+    };<