📄 odbc api declarations.bas
字号:
Attribute VB_Name = "modODBCAPI"
Option Explicit
Option Private Module
'ODBC Core API Declarations
Declare Function SQLAllocConnect Lib "odbc32.dll" (ByVal hEnv&, phdbc&) As Integer
Declare Function SQLAllocEnv Lib "odbc32.dll" (phenv&) As Integer
Declare Function SQLAllocStmt Lib "odbc32.dll" (ByVal hDbc&, phstmt&) As Integer
Declare Function SQLBindCol Lib "odbc32.dll" (ByVal hStmt&, ByVal icol%, ByVal fCType%, rgbValue As Any, ByVal cbValueMax&, pcbValue&) As Integer
Declare Function SQLCancel Lib "odbc32.dll" (ByVal hStmt&) As Integer
Declare Function SQLColAttributes Lib "odbc32.dll" (ByVal hStmt&, ByVal icol%, ByVal fDescType%, rgbDesc As Any, ByVal cbDescMax%, pcbDesc%, pfDesc&) As Integer
Declare Function SQLColAttributesString Lib "odbc32.dll" Alias "SQLColAttributes" (ByVal hStmt&, ByVal icol%, ByVal fDescType%, ByVal rgbDesc As String, ByVal cbDescMax%, pcbDesc%, pfDesc&) As Integer
Declare Function SQLConnect Lib "odbc32.dll" (ByVal hDbc&, ByVal strDSN$, ByVal cbDSN%, ByVal szUID$, ByVal cbUID%, ByVal szAuthStr$, ByVal cbAuthStr%) As Integer
Declare Function SQLDescribeCol Lib "odbc32.dll" (ByVal hStmt&, ByVal icol%, ByVal szColName$, ByVal cbColNameMax%, pcbColName%, pfSqlType%, pcbColDef&, pibScale%, pfNullable%) As Integer
Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal hDbc&) As Integer
Declare Function SQLError Lib "odbc32.dll" (ByVal hEnv&, ByVal hDbc&, ByVal hStmt&, ByVal szSqlState$, pfNativeError&, ByVal szErrorMsg$, ByVal cbErrorMsgMax%, pcbErrorMsg%) As Integer
Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal hStmt&, ByVal szSqlStr$, ByVal cbSqlStr&) As Integer
Declare Function SQLExecute Lib "odbc32.dll" (ByVal hStmt&) As Integer
Declare Function SQLFetch Lib "odbc32.dll" (ByVal hStmt&) As Integer
Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal hDbc&) As Integer
Declare Function SQLFreeEnv Lib "odbc32.dll" (ByVal hEnv&) As Integer
Declare Function SQLFreeStmt Lib "odbc32.dll" (ByVal hStmt&, ByVal fOption%) As Integer
Declare Function SQLGetCursorName Lib "odbc32.dll" (ByVal hStmt&, ByVal szCursor$, ByVal cbCursorMax%, pcbCursor%) As Integer
Declare Function SQLNumResultCols Lib "odbc32.dll" (ByVal hStmt&, pccol%) As Integer
Declare Function SQLPrepare Lib "odbc32.dll" (ByVal hStmt&, ByVal szSqlStr$, ByVal cbSqlStr&) As Integer
Declare Function SQLRowCount Lib "odbc32.dll" (ByVal hStmt&, pcrow&) As Integer
Declare Function SQLSetCursorName Lib "odbc32.dll" (ByVal hStmt&, ByVal szCursor$, ByVal cbCursor%) As Integer
Declare Function SQLSetParam Lib "odbc32.dll" (ByVal hStmt&, ByVal ipar%, ByVal fCType%, ByVal fSqlType%, ByVal cbColDef&, ByVal ibScale%, rgbValue As Any, pcbValue&) As Integer
Declare Function SQLTransact Lib "odbc32.dll" (ByVal hEnv&, ByVal hDbc&, ByVal fType%) As Integer
'Level 1
Declare Function SQLBindParameter Lib "odbc32.dll" (ByVal hStmt&, ByVal ipar%, ByVal fParamType%, ByVal fCType%, ByVal fSqlType%, ByVal cbColDef&, ByVal ibScale%, rgbValue As Any, ByVal cbValueMax&, pcbValue As Long) As Integer
Declare Function SQLColumns Lib "odbc32.dll" (ByVal hStmt&, szTblQualifier As Any, ByVal cbTblQualifier%, szTblOwner As Any, ByVal cbTblOwner%, szTblName As Any, ByVal cbTblName%, szColName As Any, ByVal cbColName%) As Integer
Declare Function SQLDriverConnect Lib "odbc32.dll" (ByVal hDbc&, ByVal hWnd As Long, ByVal szCSIn$, ByVal cbCSIn%, ByVal szCSOut$, ByVal cbCSMax%, cbCSOut%, ByVal fDrvrComp%) As Integer
Declare Function SQLGetConnectOption Lib "odbc32.dll" (ByVal hDbc&, ByVal fOption%, ByRef pvParam As Any) As Integer
Declare Function SQLGetConnectOptionString Lib "odbc32.dll" Alias "SQLGetConnectOption" (ByVal hDbc&, ByVal fOption%, ByVal pvParam As String) As Integer
Declare Function SQLGetData Lib "odbc32.dll" (ByVal hStmt&, ByVal icol%, ByVal fCType%, ByVal rgbValue As String, ByVal cbValueMax&, pcbValue&) As Integer
Declare Function SQLGetNumericData Lib "odbc32.dll" Alias "SQLGetData" (ByVal hStmt&, ByVal icol%, ByVal fCType%, ByRef rgbValue As Any, ByVal cbValueMax&, pcbValue&) As Integer
Declare Function SQLGetFunctions Lib "odbc32.dll" (ByVal hDbc&, ByVal fFunction%, pfExists%) As Integer
Declare Function SQLGetInfo Lib "odbc32.dll" (ByVal hDbc&, ByVal fInfoType%, ByRef rgbInfoValue As Any, ByVal cbInfoMax%, cbInfoOut%) As Integer
Declare Function SQLGetInfoString Lib "odbc32.dll" Alias "SQLGetInfo" (ByVal hDbc&, ByVal fInfoType%, ByVal rgbInfoValue As String, ByVal cbInfoMax%, cbInfoOut%) As Integer
Declare Function SQLGetStmtOption Lib "odbc32.dll" (ByVal hStmt&, ByVal fOption%, ByRef pvParam As Any) As Integer
Declare Function SQLGetStmtOptionString Lib "odbc32.dll" Alias "SQLGetStmtOption" (ByVal hStmt&, ByVal fOption%, ByVal pvParam As String) As Integer
Declare Function SQLGetTypeInfo Lib "odbc32.dll" (ByVal hStmt&, ByVal fSqlType%) As Integer
Declare Function SQLParamData Lib "odbc32.dll" (ByVal hStmt&, prgbValue As Any) As Integer
Declare Function SQLPutData Lib "odbc32.dll" (ByVal hStmt&, rgbValue As Any, ByVal cbValue&) As Integer
Declare Function SQLSetConnectOption Lib "odbc32.dll" (ByVal hDbc&, ByVal fOption%, ByVal vParam As Any) As Integer
Declare Function SQLSetConnectStringOption Lib "odbc32.dll" Alias "SQLSetConnectOption" (ByVal hDbc&, ByVal fOption%, vParam$) As Integer
Declare Function SQLSetStmtOption Lib "odbc32.dll" (ByVal hStmt&, ByVal fOption%, ByVal vParam&) As Integer
Declare Function SQLSpecialColumns Lib "odbc32.dll" (ByVal hStmt&, ByVal fColType%, szTblQualifier As Any, ByVal cbTblQualifier%, szTblOwner As Any, ByVal cbTblOwner%, szTblName As Any, ByVal cbTblName%, ByVal fScope%, ByVal fNullable%) As Integer
Declare Function SQLStatistics Lib "odbc32.dll" (ByVal hStmt&, szTblQualifier As Any, ByVal cbTblQualifier%, szTblOwner As Any, ByVal cbTblOwner%, szTblName As Any, ByVal cbTblName%, ByVal fUnique%, ByVal fAccuracy%) As Integer
Declare Function SQLTables Lib "odbc32.dll" (ByVal hStmt&, szTblQualifier As Any, ByVal cbTblQualifier%, szTblOwner As Any, ByVal cbTblOwner%, szTblName As Any, ByVal cbTblName%, szTblType As Any, ByVal cbTblType%) As Integer
'Level 2 Prototypes
Declare Function SQLBrowseConnect Lib "odbc32.dll" (ByVal hDbc&, ByVal szConnStrIn$, ByVal cbConnStrIn%, ByVal szConnStrOut$, ByVal cbConnStrOutMax%, pcbConnStrOut%) As Integer
Declare Function SQLColumnPrivileges Lib "odbc32.dll" (ByVal hStmt&, szTQf As Any, ByVal cbTQf%, szTOwn As Any, ByVal cbTOwn%, szTName As Any, ByVal cbTName%, szColName As Any, ByVal cbColName%) As Integer
Declare Function SQLDrivers Lib "odbc32.dll" (ByVal hEnv&, ByVal fDirection%, ByVal szstrDriverDescs$, ByVal cbstrDriverDescsMax%, pcbstrDriverDescs%, ByVal szstrDriverAttrs$, ByVal cbDrvrAttrMax%, pcbDrvrAttr%) As Integer
Declare Function SQLDataSources Lib "odbc32.dll" (ByVal hEnv&, ByVal fDirection%, ByVal strDSN$, ByVal intDSNMaxLen%, lngDSN&, ByVal szDescription$, ByVal cbDescriptionMax%, pcbDescription&) As Integer
Declare Function SQLDescribeParam Lib "odbc32.dll" (ByVal hStmt&, ByVal ipar%, pfSqlType%, pcbColDef&, pibScale%, pfNullable%) As Integer
Declare Function SQLExtendedFetch Lib "odbc32.dll" (ByVal hStmt&, ByVal fFetchType%, ByVal irow&, pcrow&, rgfRowStatus%) As Integer
Declare Function SQLForeignKeys Lib "odbc32.dll" (ByVal hStmt&, ByVal PTQual&, ByVal PTQual%, ByVal PTOwnr&, ByVal PTOwnr%, ByVal PTName&, ByVal PTName%, ByVal FTQual&, ByVal FTQf%, ByVal FTOwnr&, ByVal FTOwnr%, ByVal FTName&, ByVal FTName%) As Integer
Declare Function SQLMoreResults Lib "odbc32.dll" (ByVal hStmt&) As Integer
Declare Function SQLNativeSql Lib "odbc32.dll" (ByVal hDbc&, ByVal szSqlStrIn$, ByVal cbSqlStrIn&, ByVal szSqlStr$, ByVal cbSqlStrMax&, pcbSqlStr&) As Integer
Declare Function SQLNumParams Lib "odbc32.dll" (ByVal hStmt&, pcpar%) As Integer
Declare Function SQLParamOptions Lib "odbc32.dll" (ByVal hStmt&, ByVal crow%, pirow&) As Integer
Declare Function SQLPrimaryKeys Lib "odbc32.dll" (ByVal hStmt&, szTblQualifier As Any, ByVal cbTblQualifier%, szTblOwner As Any, ByVal cbTblOwner%, szTblName As Any, ByVal cbTblName%) As Integer
Declare Function SQLProcedureColumns Lib "odbc32.dll" (ByVal hStmt&, szProcQualifier As Any, ByVal cbProcQualifier%, szProcOwner As Any, ByVal cbProcOwner%, szProcName As Any, ByVal cbProcName%, szColName As Any, ByVal cbColName%) As Integer
Declare Function SQLProcedures Lib "odbc32.dll" (ByVal hStmt&, szProcQualifier As Any, ByVal cbProcQualifier%, szProcOwner As Any, ByVal cbProcOwner%, szProcName As Any, ByVal cbProcName%) As Integer
Declare Function SQLSetPos Lib "odbc32.dll" (ByVal hStmt&, ByVal irow%, ByVal fOption%, ByVal fLock%) As Integer
Declare Function SQLSetScrollOptions Lib "odbc32.dll" (ByVal hStmt&, ByVal fConcurrency%, ByVal crowKeyset&, ByVal crowRowset%) As Integer
Declare Function SQLTablePrivileges Lib "odbc32.dll" (ByVal hStmt&, szTblQualifier As Any, ByVal cbTblQualifier%, szTblOwner As Any, ByVal cbTblOwner%, szTblName As Any, ByVal cbTblName%) As Integer
'ODBC Constants/Types
'Generally useful constants
Global Const SQL_NTS As Long = -3 ' NTS = Null Terminated String
Global Const SQL_SQLSTATE_SIZE As Long = 5 ' size of SQLSTATE
Global Const SQL_MAX_MESSAGE_LENGTH As Long = 512 ' message buffer size
Global Const SQL_MAX_DSN_LENGTH As Long = 32 ' maximum data source name size
'RETCODEs
Global Const SQL_ERROR As Long = -1
Global Const SQL_INVALID_HANDLE As Long = -2
Global Const SQL_NO_DATA_FOUND As Long = 100
Global Const SQL_SUCCESS As Long = 0
Global Const SQL_SUCCESS_WITH_INFO As Long = 1
'SQLFreeStmt defines
Global Const SQL_CLOSE As Long = 0
Global Const SQL_DROP As Long = 1
Global Const SQL_UNBIND As Long = 2
Global Const SQL_RESET_PARAMS As Long = 3
' SQLSetParam defines
Global Const SQL_C_DEFAULT As Long = 99
' SQLTransact defines
Global Const SQL_COMMIT As Long = 0
Global Const SQL_ROLLBACK As Long = 1
' Standard SQL datatypes, using ANSI type numbering
Global Const SQL_CHAR As Long = 1
Global Const SQL_NUMERIC As Long = 2
Global Const SQL_DECIMAL As Long = 3
Global Const SQL_INTEGER As Long = 4
Global Const SQL_SMALLINT As Long = 5
Global Const SQL_FLOAT As Long = 6
Global Const SQL_REAL As Long = 7
Global Const SQL_DOUBLE As Long = 8
Global Const SQL_VARCHAR As Long = 12
Global Const SQL_TYPE_MIN As Long = 1
Global Const SQL_TYPE_NULL As Long = 0
Global Const SQL_TYPE_MAX As Long = 12
' C datatype to SQL datatype mapping SQL types
Global Const SQL_C_CHAR As Long = SQL_CHAR ' CHAR, VARCHAR, DECIMAL, NUMERIC
Global Const SQL_C_LONG As Long = SQL_INTEGER ' INTEGER
Global Const SQL_C_SHORT As Long = SQL_SMALLINT ' SMALLINT
Global Const SQL_C_FLOAT As Long = SQL_REAL ' REAL
Global Const SQL_C_DOUBLE As Long = SQL_DOUBLE ' FLOAT, DOUBLE
' NULL status constants. These are used in SQLColumns, SQLColAttributes,
' SQLDescribeCol, and SQLSpecialColumns to describe the nullablity of a
' column in a table. SQL_NULLABLE_UNKNOWN can be returned only by
' SQLDescribeCol or SQLColAttributes. It is used when the DBMS's meta-data
' does not contain this info.
Global Const SQL_NO_NULLS As Long = 0
Global Const SQL_NULLABLE As Long = 1
Global Const SQL_NULLABLE_UNKNOWN As Long = 2
' Special length values
Global Const SQL_NULL_DATA As Long = -1
Global Const SQL_DATA_AT_EXEC As Long = -2
' SQLColAttributes defines
Global Const SQL_COLUMN_COUNT As Long = 0
Global Const SQL_COLUMN_NAME As Long = 1
Global Const SQL_COLUMN_TYPE As Long = 2
Global Const SQL_COLUMN_LENGTH As Long = 3
Global Const SQL_COLUMN_PRECISION As Long = 4
Global Const SQL_COLUMN_SCALE As Long = 5
Global Const SQL_COLUMN_DISPLAY_SIZE As Long = 6
Global Const SQL_COLUMN_NULLABLE As Long = 7
Global Const SQL_COLUMN_UNSIGNED As Long = 8
Global Const SQL_COLUMN_MONEY As Long = 9
Global Const SQL_COLUMN_UPDATABLE As Long = 10
Global Const SQL_COLUMN_AUTO_INCREMENT As Long = 11
Global Const SQL_COLUMN_CASE_SENSITIVE As Long = 12
Global Const SQL_COLUMN_SEARCHABLE As Long = 13
Global Const SQL_COLUMN_TYPE_NAME As Long = 14
Global Const SQL_COLUMN_TABLE_NAME As Long = 15
Global Const SQL_COLUMN_OWNER_NAME As Long = 16
Global Const SQL_COLUMN_QUALIFIER_NAME As Long = 17
Global Const SQL_COLUMN_LABEL As Long = 18
Global Const SQL_COLATT_OPT_MAX As Long = SQL_COLUMN_LABEL
' SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE
Global Const SQL_ATTR_READONLY As Long = 0
Global Const SQL_ATTR_WRITE As Long = 1
Global Const SQL_ATTR_READWRITE_UNKNOWN As Long = 2
' SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE
' These are also used by SQLGetInfo
Global Const SQL_UNSEARCHABLE As Long = 0
Global Const SQL_LIKE_ONLY As Long = 1
Global Const SQL_ALL_EXCEPT_LIKE As Long = 2
Global Const SQL_SEARCHABLE As Long = 3
' SQLError defines
Global Const SQL_NULL_HENV As Long = 0
Global Const SQL_NULL_HDBC As Long = 0
Global Const SQL_NULL_HSTMT As Long = 0
' Level 1 Definitions/Functions
' Generally useful constants
Global Const SQL_MAX_OPTION_STRING_LENGTH = 256
' Additional return codes
Global Const SQL_STILL_EXECUTING As Long = 2
Global Const SQL_NEED_DATA As Long = 99
' SQL extended datatypes
Global Const SQL_DATE As Long = 9
Global Const SQL_TIME As Long = 10
Global Const SQL_TIMESTAMP As Long = 11
Global Const SQL_LONGVARCHAR As Long = -1
Global Const SQL_BINARY As Long = -2
Global Const SQL_VARBINARY As Long = -3
Global Const SQL_LONGVARBINARY As Long = -4
Global Const SQL_BIGINT As Long = -5
Global Const SQL_TINYINT As Long = -6
Global Const SQL_BIT As Long = -7
Global Const SQL_TYPE_DRIVER_START As Long = -80
' C datatype to SQL datatype mapping
Global Const SQL_SIGNED_OFFSET As Long = -20
Global Const SQL_UNSIGNED_OFFSET As Long = -22
Global Const SQL_C_DATE As Long = SQL_DATE
Global Const SQL_C_TIME As Long = SQL_TIME
Global Const SQL_C_TIMESTAMP As Long = SQL_TIMESTAMP
Global Const SQL_C_BINARY As Long = SQL_BINARY
Global Const SQL_C_BIT As Long = SQL_BIT
Global Const SQL_C_TINYINT As Long = SQL_TINYINT
Global Const SQL_C_SLONG As Long = SQL_C_LONG + SQL_SIGNED_OFFSET
Global Const SQL_C_SSHORT As Long = SQL_C_SHORT + SQL_SIGNED_OFFSET
Global Const SQL_C_STINYINT As Long = SQL_TINYINT + SQL_SIGNED_OFFSET
Global Const SQL_C_ULONG As Long = SQL_C_LONG + SQL_UNSIGNED_OFFSET
Global Const SQL_C_USHORT As Long = SQL_C_SHORT + SQL_UNSIGNED_OFFSET
Global Const SQL_C_UTINYINT As Long = SQL_TINYINT + SQL_UNSIGNED_OFFSET
Global Const SQL_C_BOOKMARK As Long = SQL_C_ULONG
Global Const SQL_ALL_TYPES As Long = 0
' Date/Time/Timestamp Structs
Type DATE_STRUCT
year As Integer
month As Integer
day As Integer
End Type
Type TIME_STRUCT
hour As Integer
minute As Integer
second As Integer
End Type
Type TIMESTAMP_STRUCT
year As Integer
month As Integer
day As Integer
hour As Integer
minute As Integer
second As Integer
fraction As Long
End Type
' Options for SQLDriverConnect
Global Const SQL_DRIVER_NOPROMPT As Long = 0
Global Const SQL_DRIVER_COMPLETE As Long = 1
Global Const SQL_DRIVER_PROMPT As Long = 2
Global Const SQL_DRIVER_COMPLETE_REQUIRED As Long = 3
' Special return values for SQLGetData
Global Const SQL_NO_TOTAL As Long = -4
' SQLSetParam extensions
Global Const SQL_DEFAULT_PARAM As Long = -5
Global Const SQL_IGNORE As Long = -6
Global Const SQL_LEN_DATA_AT_EXEC_OFFSET As Long = -100
' Defines for SQLGetFunctions
' Core Functions
Global Const SQL_API_SQLALLOCCONNECT As Long = 1
Global Const SQL_API_SQLALLOCENV As Long = 2
Global Const SQL_API_SQLALLOCSTMT As Long = 3
Global Const SQL_API_SQLBINDCOL As Long = 4
Global Const SQL_API_SQLCANCEL As Long = 5
Global Const SQL_API_SQLCOLATTRIBUTES As Long = 6
Global Const SQL_API_SQLCONNECT As Long = 7
Global Const SQL_API_SQLDESCRIBECOL As Long = 8
Global Const SQL_API_SQLDISCONNECT As Long = 9
Global Const SQL_API_SQLERROR As Long = 10
Global Const SQL_API_SQLEXECDIRECT As Long = 11
Global Const SQL_API_SQLEXECUTE As Long = 12
Global Const SQL_API_SQLFETCH As Long = 13
Global Const SQL_API_SQLFREECONNECT As Long = 14
Global Const SQL_API_SQLFREEENV As Long = 15
Global Const SQL_API_SQLFREESTMT As Long = 16
Global Const SQL_API_SQLGETCURSORNAME As Long = 17
Global Const SQL_API_SQLNUMRESULTCOLS As Long = 18
Global Const SQL_API_SQLPREPARE As Long = 19
Global Const SQL_API_SQLROWCOUNT As Long = 20
Global Const SQL_API_SQLSETCURSORNAME As Long = 21
Global Const SQL_API_SQLSETPARAM As Long = 22
Global Const SQL_API_SQLTRANSACT As Long = 23
Global Const SQL_NUM_FUNCTIONS As Long = 23
Global Const SQL_EXT_API_START As Long = 40
' Level 1 Functions
Global Const SQL_API_SQLCOLUMNS As Long = 40
Global Const SQL_API_SQLDRIVERCONNECT As Long = 41
Global Const SQL_API_SQLGETCONNECTOPTION As Long = 42
Global Const SQL_API_SQLGETDATA As Long = 43
Global Const SQL_API_SQLGETFUNCTIONS As Long = 44
Global Const SQL_API_SQLGETINFO As Long = 45
Global Const SQL_API_SQLGETSTMTOPTION As Long = 46
Global Const SQL_API_SQLGETTYPEINFO As Long = 47
Global Const SQL_API_SQLPARAMDATA As Long = 48
Global Const SQL_API_SQLPUTDATA As Long = 49
Global Const SQL_API_SQLSETCONNECTOPTION As Long = 50
Global Const SQL_API_SQLSETSTMTOPTION As Long = 51
Global Const SQL_API_SQLSPECIALCOLUMNS As Long = 52
Global Const SQL_API_SQLSTATISTICS As Long = 53
Global Const SQL_API_SQLTABLES As Long = 54
' Level 2 Functions
Global Const SQL_API_SQLBROWSECONNECT As Long = 55
Global Const SQL_API_SQLCOLUMNPRIVILEGES As Long = 56
Global Const SQL_API_SQLDATASOURCES As Long = 57
Global Const SQL_API_SQLDESCRIBEPARAM As Long = 58
Global Const SQL_API_SQLEXTENDEDFETCH As Long = 59
Global Const SQL_API_SQLFOREIGNKEYS As Long = 60
Global Const SQL_API_SQLMORERESULTS As Long = 61
Global Const SQL_API_SQLNATIVESQL As Long = 62
Global Const SQL_API_SQLNUMPARAMS As Long = 63
Global Const SQL_API_SQLPARAMOPTIONS As Long = 64
Global Const SQL_API_SQLPRIMARYKEYS As Long = 65
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -