[PATCH] Some SQL Server include/def

Sean Young <[email protected]> Sat, 29 Mar 2003 18:00:04 +0100
Newsgroups gmane.comp.gnu.mingw.patches
Message-ID <[email protected]>
These are needed if you want to access SQL server through odbc, with
special SQL Server features. Successfully tested.

Sean
odbcss.h (text/plain, 21.8 KB)
/*
 * odbcss.h
 *
 * SQL Server specific ODBC defines
 */

#ifndef _ODBCSS_H
#define _ODBCSS_H

#ifdef __cplusplus
extern "C" { 
#endif 

#define SQL_MAX_SQLSERVERNAME   128

#define SQL_COPT_SS_BASE                1200
#define SQL_COPT_SS_REMOTE_PWD          (SQL_COPT_SS_BASE+1) 
#define SQL_COPT_SS_USE_PROC_FOR_PREP   (SQL_COPT_SS_BASE+2)
#define SQL_COPT_SS_INTEGRATED_SECURITY (SQL_COPT_SS_BASE+3)
#define SQL_COPT_SS_PRESERVE_CURSORS    (SQL_COPT_SS_BASE+4)
#define SQL_COPT_SS_USER_DATA           (SQL_COPT_SS_BASE+5)
#define SQL_COPT_SS_ENLIST_IN_DTC       SQL_ATTR_ENLIST_IN_DTC 
#define SQL_COPT_SS_ENLIST_IN_XA        SQL_ATTR_ENLIST_IN_XA 
#define SQL_COPT_SS_FALLBACK_CONNECT    (SQL_COPT_SS_BASE+10) 
#define SQL_COPT_SS_PERF_DATA           (SQL_COPT_SS_BASE+11)
#define SQL_COPT_SS_PERF_DATA_LOG       (SQL_COPT_SS_BASE+12)
#define SQL_COPT_SS_PERF_QUERY_INTERVAL (SQL_COPT_SS_BASE+13)
#define SQL_COPT_SS_PERF_QUERY_LOG      (SQL_COPT_SS_BASE+14)
#define SQL_COPT_SS_PERF_QUERY          (SQL_COPT_SS_BASE+15)
#define SQL_COPT_SS_PERF_DATA_LOG_NOW   (SQL_COPT_SS_BASE+16)
#define SQL_COPT_SS_QUOTED_IDENT        (SQL_COPT_SS_BASE+17)
#define SQL_COPT_SS_ANSI_NPW            (SQL_COPT_SS_BASE+18)
#define SQL_COPT_SS_BCP                 (SQL_COPT_SS_BASE+19)
#define SQL_COPT_SS_TRANSLATE           (SQL_COPT_SS_BASE+20)
#define SQL_COPT_SS_ATTACHDBFILENAME    (SQL_COPT_SS_BASE+21)
#define SQL_COPT_SS_CONCAT_NULL         (SQL_COPT_SS_BASE+22)
#define SQL_COPT_SS_ENCRYPT             (SQL_COPT_SS_BASE+23)

#define SQL_COPT_SS_MAX_USED            SQL_COPT_SS_ENCRYPT

#define SQL_SOPT_SS_BASE                1225
#define SQL_SOPT_SS_TEXTPTR_LOGGING     (SQL_SOPT_SS_BASE+0)
#define SQL_SOPT_SS_CURRENT_COMMAND     (SQL_SOPT_SS_BASE+1)
#define SQL_SOPT_SS_HIDDEN_COLUMNS      (SQL_SOPT_SS_BASE+2)
#define SQL_SOPT_SS_NOBROWSETABLE       (SQL_SOPT_SS_BASE+3)
#define SQL_SOPT_SS_REGIONALIZE         (SQL_SOPT_SS_BASE+4)
#define SQL_SOPT_SS_CURSOR_OPTIONS      (SQL_SOPT_SS_BASE+5)
#define SQL_SOPT_SS_NOCOUNT_STATUS      (SQL_SOPT_SS_BASE+6)
#define SQL_SOPT_SS_DEFER_PREPARE       (SQL_SOPT_SS_BASE+7)

#define SQL_SOPT_SS_MAX_USED            SQL_SOPT_SS_DEFER_PREPARE

#define SQL_COPT_SS_BASE_EX             1240
#define SQL_COPT_SS_BROWSE_CONNECT      (SQL_COPT_SS_BASE_EX+1)
#define SQL_COPT_SS_BROWSE_SERVER       (SQL_COPT_SS_BASE_EX+2)
#define SQL_COPT_SS_WARN_ON_CP_ERROR    (SQL_COPT_SS_BASE_EX+3)
#define SQL_COPT_SS_CONNECTION_DEAD     (SQL_COPT_SS_BASE_EX+4)
#define SQL_COPT_SS_BROWSE_CACHE_DATA   (SQL_COPT_SS_BASE_EX+5)
#define SQL_COPT_SS_RESET_CONNECTION    (SQL_COPT_SS_BASE_EX+6)

#define SQL_COPT_SS_EX_MAX_USED         SQL_COPT_SS_RESET_CONNECTION


#define SQL_UP_OFF              0L
#define SQL_UP_ON               1L
#define SQL_UP_ON_DROP          2L
#define SQL_UP_DEFAULT          SQL_UP_ON

#define SQL_IS_OFF              0L
#define SQL_IS_ON               1L
#define SQL_IS_DEFAULT          SQL_IS_OFF

#define SQL_PC_OFF              0L
#define SQL_PC_ON               1L
#define SQL_PC_DEFAULT          SQL_PC_OFF

#define SQL_UD_NOTSET           NULL

#define SQL_XL_OFF              0L
#define SQL_XL_ON               1L
#define SQL_XL_DEFAULT          SQL_XL_ON

#define SQL_FB_OFF              0L
#define SQL_FB_ON               1L
#define SQL_FB_DEFAULT          SQL_FB_OFF

#define SQL_BCP_OFF             0L
#define SQL_BCP_ON              1L
#define SQL_BCP_DEFAULT         SQL_BCP_OFF

#define SQL_QI_OFF              0L
#define SQL_QI_ON               1L
#define SQL_QI_DEFAULT          SQL_QI_ON

#define SQL_AD_OFF              0L
#define SQL_AD_ON               1L
#define SQL_AD_DEFAULT          SQL_AD_ON

#define SQL_CN_OFF              0L
#define SQL_CN_ON               1L
#define SQL_CN_DEFAULT          SQL_CN_ON


#define SQL_TL_OFF              0L
#define SQL_TL_ON               1L
#define SQL_TL_DEFAULT          SQL_TL_ON

#define SQL_HC_OFF              0L
#define SQL_HC_ON               1L
#define SQL_HC_DEFAULT          SQL_HC_OFF

#define SQL_NB_OFF              0L
#define SQL_NB_ON               1L
#define SQL_NB_DEFAULT          SQL_NB_OFF

#define SQL_RE_OFF              0L
#define SQL_RE_ON               1L
#define SQL_RE_DEFAULT          SQL_RE_OFF

#define SQL_CO_OFF              0L
#define SQL_CO_FFO              1L
#define SQL_CO_AF               2L
#define SQL_CO_FFO_AF           (SQL_CO_FFO|SQL_CO_AF)
#define SQL_CO_FIREHOSE_AF      4L
#define SQL_CO_DEFAULT          SQL_CO_OFF

#define SQL_NC_OFF              0L 
#define SQL_NC_ON               1L 

#define SQL_DP_OFF              0L 
#define SQL_DP_ON               1L 

#define SQL_EN_OFF              0L
#define SQL_EN_ON               1L

#define SQL_MORE_INFO_NO        0L
#define SQL_MORE_INFO_YES       1L

#define SQL_CACHE_DATA_NO       0L
#define SQL_CACHE_DATA_YES      1L

#define SQL_RESET_YES           1L

#define SQL_WARN_NO             0L
#define SQL_WARN_YES            1L

#define SQL_CURSOR_FAST_FORWARD_ONLY    8


#define SQL_CA_SS_BASE                  1200
#define SQL_CA_SS_COLUMN_SSTYPE         (SQL_CA_SS_BASE+0)
#define SQL_CA_SS_COLUMN_UTYPE          (SQL_CA_SS_BASE+1)
#define SQL_CA_SS_NUM_ORDERS            (SQL_CA_SS_BASE+2)
#define SQL_CA_SS_COLUMN_ORDER          (SQL_CA_SS_BASE+3)
#define SQL_CA_SS_COLUMN_VARYLEN        (SQL_CA_SS_BASE+4)
#define SQL_CA_SS_NUM_COMPUTES          (SQL_CA_SS_BASE+5)
#define SQL_CA_SS_COMPUTE_ID            (SQL_CA_SS_BASE+6)
#define SQL_CA_SS_COMPUTE_BYLIST        (SQL_CA_SS_BASE+7)
#define SQL_CA_SS_COLUMN_ID             (SQL_CA_SS_BASE+8)
#define SQL_CA_SS_COLUMN_OP             (SQL_CA_SS_BASE+9)
#define SQL_CA_SS_COLUMN_SIZE           (SQL_CA_SS_BASE+10)
#define SQL_CA_SS_COLUMN_HIDDEN         (SQL_CA_SS_BASE+11)
#define SQL_CA_SS_COLUMN_KEY            (SQL_CA_SS_BASE+12)
/*#define SQL_DESC_BASE_COLUMN_NAME_OLD (SQL_CA_SS_BASE+13)*/
#define SQL_CA_SS_COLUMN_COLLATION      (SQL_CA_SS_BASE+14)
#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)
#define SQL_CA_SS_MAX_USED              (SQL_CA_SS_BASE+18)


#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
/* Datatypes for SQL Server 6.0 and higher */
#define SQLDECIMAL                      0x6a
#define SQLNUMERIC                      0x6c
#define SQLDECIMALN                     0x6a
#define SQLNUMERICN                     0x6c
/* Datatypes for SQL Server 2000 and higher */
#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
#define SQLINT8                         0x7f
#define SQLVARIANT                      0x62


#define SQLudtUNIQUEIDENTIFIER          0
#define SQLudtBITN                      0
#define SQLudtVARCHAR                   2
#define SQLudtCHAR                      1
#define SQLudtBINARY                    3
#define SQLudtVARBINARY                 4
#define SQLudtINT1                      5
#define SQLudtINT2                      6
#define SQLudtINT4                      7
#define SQLudtFLT8                      8
#define SQLudtNUM                       10
#define SQLudtMONEY                     11
#define SQLudtDATETIME                  12
#define SQLudtINTN                      13
#define SQLudtFLTN                      14
#define SQLudtDATETIMN                  15
#define SQLudtBIT                       16
#define SQLudtMONEYN                    17
#define SQLudtSYSNAME                   18
#define SQLudtTEXT                      19
#define SQLudtIMAGE                     20
#define SQLudtMONEY4                    21
#define SQLudtDATETIM4                  22
#define SQLudtFLT4                      23
#define SQLudtDECML                     24
#define SQLudtNUMN                      25
#define SQLudtDECMLN                    26
#define SQLudtTIMESTAMP                 80
#define MIN_USER_DATATYPE               256

#define SQLAOPSTDEV                     0x30
#define SQLAOPSTDEVP                    0x31
#define SQLAOPVAR                       0x32
#define SQLAOPVARP                      0x33
#define SQLAOPCNT                       0x4b
#define SQLAOPSUM                       0x4d
#define SQLAOPAVG                       0x4f
#define SQLAOPMIN                       0x51
#define SQLAOPMAX                       0x52
#define SQLAOPANY                       0x53
#define SQLAOPNOOP                      0x56


#define SQL_INFO_SS_FIRST               1199
#define SQL_INFO_SS_NETLIB_NAMEW        (SQL_INFO_SS_FIRST+0) 
#define SQL_INFO_SS_NETLIB_NAMEA        (SQL_INFO_SS_FIRST+1) 
#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


#define SQL_SS_VARIANT    -150


#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)


#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_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_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_LOAD_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_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 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

#ifndef MAXNUMERICLEN   
#define DBMAXCHAR       (8000+1)
#define MAXNAME         (SQL_MAX_SQLSERVERNAME+1)
#ifdef UNICODE
typedef wchar_t         DBCHAR;
#else
typedef char            DBCHAR;
#endif
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 dbvarychar {
        DBSMALLINT  len;
        DBCHAR      str[DBMAXCHAR];
} DBVARYCHAR;

typedef struct dbvarybin {
        DBSMALLINT  len;
        BYTE        array[DBMAXCHAR];
} DBVARYBIN;

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;

#define DBNUM_PREC_TYPE BYTE
#define DBNUM_SCALE_TYPE BYTE
#define DBNUM_VAL_TYPE BYTE

#if (ODBCVER < 0x0300)
#define MAXNUMERICLEN 16

typedef struct dbnumeric {
        DBNUM_PREC_TYPE   precision;
        DBNUM_SCALE_TYPE  scale;
        BYTE              sign;
        DBNUM_VAL_TYPE    val[MAXNUMERICLEN];
} DBNUMERIC;

typedef DBNUMERIC DBDECIMAL;
#else
#define MAXNUMERICLEN SQL_MAX_NUMERIC_LEN
typedef SQL_NUMERIC_STRUCT DBNUMERIC;
typedef SQL_NUMERIC_STRUCT DBDECIMAL;
#endif

#endif /* MAXNUMERICLEN */

typedef long            DBINT;
typedef DBINT*          LPDBINT;
#ifndef _LPCBYTE_DEFINED
#define _LPCBYTE_DEFINED
typedef const LPBYTE    LPCBYTE;
#endif

typedef struct sqlperf {
        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;
        DWORD CurrentConnectionCount;
        DWORD MaxConnectionsOpened;
        DWORD SumConnectionsOpened;
        DWORD SumConnectiontime;
        LDOUBLE AvgTimeOpened;
        DWORD ServerRndTrips;
        DWORD BuffersSent;
        DWORD BuffersRec;
        DWORD BytesSent;
        DWORD BytesRec;
        DWORD msExecutionTime;
        DWORD msNetWorkServerTime;
} SQLPERF;

#define SQL_PERF_START          1                       
#define SQL_PERF_STOP           2                       

#define SQL_SS_DL_DEFAULT       TEXT("C:\\STATS.LOG")

#define SQL_SS_QL_DEFAULT       TEXT("C:\\QUERY.LOG")

#define SQL_SS_QI_DEFAULT       30000   

#define SUCCEED                 1
#define FAIL                    0
#define SUCCEED_ABORT           2
#define SUCCEED_ASYNC           3

#define DB_IN                   1       
#define DB_OUT                  2       

#define BCPMAXERRS              1       
#define BCPFIRST                2       
#define BCPLAST                 3       
#define BCPBATCH                4       
#define BCPKEEPNULLS            5       
#define BCPABORT                6       
#define BCPODBC                 7       
#define BCPKEEPIDENTITY         8       
#define BCP6xFILEFMT            9       
#define BCPHINTSA               10      
#define BCPHINTSW               11      
#define BCPFILECP               12      
#define BCPUNICODEFILE          13      
#define BCPTEXTFILE             14      
#define BCPFILEFMT              15      

#define BCPFILECP_ACP           0       
#define BCPFILECP_OEMCP         1       
#define BCPFILECP_RAW           (-1)


#define SQL_VARLEN_DATA (-10)   


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_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);

#ifdef UNICODE
#define bcp_init        bcp_initW
#define bcp_readfmt     bcp_readfmtW
#define bcp_writefmt    bcp_writefmtW
#define dbprtype        dbprtypeW
#define BCPHINTS        BCPHINTSW
#else
#define bcp_init        bcp_initA
#define bcp_readfmt     bcp_readfmtA
#define bcp_writefmt    bcp_writefmtA
#define dbprtype        dbprtypeA
#define BCPHINTS        BCPHINTSA
#endif

SQLRETURN SQL_API SQLLinkedServers (SQLHSTMT);
SQLRETURN SQL_API SQLLinkedCatalogsA (SQLHSTMT, LPCSTR, SWORD);
SQLRETURN SQL_API SQLLinkedCatalogsW (SQLHSTMT, LPCWSTR, SWORD);

HANDLE SQL_API SQLInitEnumServers (WCHAR*, WCHAR*);
RETCODE SQL_API SQLGetNextEnumeration (HANDLE, BYTE*, INT*);
RETCODE SQL_API SQLCloseEnumServers (HANDLE);

#ifdef UNICODE
#define SQLLinkedCatalogs       SQLLinkedCatalogsW
#else
#define SQLLinkedCatalogs       SQLLinkedCatalogsA
#endif

#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

#define SQL_FAST_CONNECT        (SQL_COPT_SS_BASE+0)

#define SQL_FC_OFF              0L                      
#define SQL_FC_ON               1L                      
#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_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
#define SQL_TEXTPTR_LOGGING             SQL_SOPT_SS_TEXTPTR_LOGGING
#define SQL_CA_SS_BASE_COLUMN_NAME      SQL_DESC_BASE_COLUMN_NAME


#ifdef __cplusplus
}
#endif  
#endif /* _ODBCSS_H */
odbcbcp.def (text/plain, 452 B)
LIBRARY ODBCBCP.DLL
EXPORTS
SQLCloseEnumServers@4
SQLGetNextEnumeration@12
SQLInitEnumServers@8
SQLLinkedCatalogsA@12
SQLLinkedCatalogsW@12
SQLLinkedServers@4
bcp_batch@4
bcp_bind@32
bcp_colfmt@32
bcp_collen@12
bcp_colptr@12
bcp_columns@8
bcp_control@12
bcp_done@4
bcp_exec@8
bcp_getcolfmt@24
bcp_initA@20
bcp_initW@20
bcp_moretext@12
bcp_readfmtA@8
bcp_readfmtW@8
bcp_sendrow@4
bcp_setcolfmt@20
bcp_writefmtA@8
bcp_writefmtW@8
dbprtypeA@4
dbprtypeW@4