/*++ Copyright (c) 1995-1996 Microsoft Corporation Module Name : dynodbc.h Abstract: This header declares functions for dynamically loading ODBC. Author: Murali R. Krishnan ( MuraliK ) 3-Nov-1995 Environment: Win32 -- User Mode Project: HTTPODBC Revision History: --*/ # ifndef _DYNODBC_H_ # define _DYNODBC_H_ /************************************************************ * Include Headers ************************************************************/ // // SQL-ODBC interface headers // #include "sql.h" #include "sqlext.h" #include "sqltypes.h" /************************************************************ * Dynamic Load support ************************************************************/ BOOL DynLoadODBC( VOID ); // // Prototypes form sql.h // typedef RETCODE ( SQL_API * pfnSQLAllocConnect )( HENV henv, HDBC FAR * phdbc ); typedef RETCODE ( SQL_API * pfnSQLAllocEnv )( HENV FAR * phenv ); typedef RETCODE ( SQL_API * pfnSQLAllocStmt )( HDBC hdbc, HSTMT FAR * phstmt ); typedef RETCODE ( SQL_API * pfnSQLBindCol )( HSTMT hstmt, UWORD icol, SWORD fCType, PTR rgbValue, SDWORD cbValueMax, SDWORD FAR *pcbValue ); typedef RETCODE ( SQL_API * pfnSQLCancel )( HSTMT hstmt ); typedef RETCODE ( SQL_API * pfnSQLColAttributes )( HSTMT hstmt, UWORD icol, UWORD fDescType, PTR rgbDesc, SWORD cbDescMax, SWORD FAR *pcbDesc, SDWORD FAR *pfDesc ); typedef RETCODE ( SQL_API * pfnSQLConnect )( HDBC hdbc, UCHAR FAR *szDSN, SWORD cbDSN, UCHAR FAR *szUID, SWORD cbUID, UCHAR FAR *szAuthStr, SWORD cbAuthStr ); typedef RETCODE ( SQL_API * pfnSQLDescribeCol )( HSTMT hstmt, UWORD icol, UCHAR FAR *szColName, SWORD cbColNameMax, SWORD FAR *pcbColName, SWORD FAR *pfSqlType, UDWORD FAR *pcbColDef, SWORD FAR *pibScale, SWORD FAR *pfNullable ); typedef RETCODE ( SQL_API * pfnSQLDisconnect )( HDBC hdbc ); typedef RETCODE ( SQL_API * pfnSQLError )( HENV henv, HDBC hdbc, HSTMT hstmt, UCHAR FAR *szSqlState, SDWORD FAR *pfNativeError, UCHAR FAR *szErrorMsg, SWORD cbErrorMsgMax, SWORD FAR *pcbErrorMsg ); typedef RETCODE ( SQL_API * pfnSQLExecDirect )( HSTMT hstmt, UCHAR FAR *szSqlStr, SDWORD cbSqlStr ); typedef RETCODE ( SQL_API * pfnSQLExecute )( HSTMT hstmt ); typedef RETCODE ( SQL_API * pfnSQLFetch )( HSTMT hstmt ); typedef RETCODE ( SQL_API * pfnSQLFreeConnect )( HDBC hdbc ); typedef RETCODE ( SQL_API * pfnSQLFreeEnv )( HENV henv ); typedef RETCODE ( SQL_API * pfnSQLFreeStmt )( HSTMT hstmt, UWORD fOption ); typedef RETCODE ( SQL_API * pfnSQLGetCursorName )( HSTMT hstmt, UCHAR FAR *szCursor, SWORD cbCursorMax, SWORD FAR *pcbCursor ); typedef RETCODE ( SQL_API * pfnSQLNumResultCols )( HSTMT hstmt, SWORD FAR *pccol ); typedef RETCODE ( SQL_API * pfnSQLPrepare )( HSTMT hstmt, UCHAR FAR *szSqlStr, SDWORD cbSqlStr ); typedef RETCODE ( SQL_API * pfnSQLRowCount )( HSTMT hstmt, SDWORD FAR *pcrow ); typedef RETCODE ( SQL_API * pfnSQLSetCursorName )( HSTMT hstmt, UCHAR FAR *szCursor, SWORD cbCursor ); typedef RETCODE ( SQL_API * pfnSQLTransact )( HENV henv, HDBC hdbc, UWORD fType ); // // Prototypes form sqlext.h // // Change to new prototype to get rid of 64-bit compile error typedef RETCODE ( SQL_API * pfnSQLSetConnectOption )( HDBC hdbc, UWORD fOption, SQLULEN vParam ); typedef RETCODE ( SQL_API * pfnSQLDrivers )( HENV henv, UWORD fDirection, UCHAR FAR *szDriverDesc, SWORD cbDriverDescMax, SWORD FAR *pcbDriverDesc, UCHAR FAR *szDriverAttributes, SWORD cbDrvrAttrMax, SWORD FAR *pcbDrvrAttr ); typedef RETCODE ( SQL_API * pfnSQLBindParameter )( HSTMT hstmt, UWORD ipar, SWORD fParamType, SWORD fCType, SWORD fSqlType, UDWORD cbColDef, SWORD ibScale, PTR rgbValue, SDWORD cbValueMax, SDWORD FAR *pcbValue ); typedef RETCODE ( SQL_API * pfnSQLDataSources )( HENV henv, UWORD fDirection, UCHAR FAR *szDSN, SWORD cbDSNMax, SWORD FAR *pcbDSN, UCHAR FAR *szDescription, SWORD cbDescriptionMax, SWORD FAR *pcbDescription ); typedef RETCODE ( SQL_API * pfnSQLGetInfo )( HDBC hdbc, UWORD fInfoType, PTR rgbInfoValue, SWORD cbInfoValueMax, SWORD FAR *pcbInfoValue ); typedef RETCODE ( SQL_API * pfnSQLMoreResults )( HSTMT hstmt ); /************************************************************ * Variables ************************************************************/ // // ODBC DLL Entry Points, fill by calling LoadODBC // extern pfnSQLAllocConnect pSQLAllocConnect ; extern pfnSQLAllocEnv pSQLAllocEnv ; extern pfnSQLAllocStmt pSQLAllocStmt ; extern pfnSQLBindCol pSQLBindCol ; extern pfnSQLCancel pSQLCancel ; extern pfnSQLColAttributes pSQLColAttributes ; extern pfnSQLConnect pSQLConnect ; extern pfnSQLDescribeCol pSQLDescribeCol ; extern pfnSQLDisconnect pSQLDisconnect ; extern pfnSQLError pSQLError ; extern pfnSQLExecDirect pSQLExecDirect ; extern pfnSQLExecute pSQLExecute ; extern pfnSQLFetch pSQLFetch ; extern pfnSQLFreeConnect pSQLFreeConnect ; extern pfnSQLFreeEnv pSQLFreeEnv ; extern pfnSQLFreeStmt pSQLFreeStmt ; extern pfnSQLGetCursorName pSQLGetCursorName ; extern pfnSQLNumResultCols pSQLNumResultCols ; extern pfnSQLPrepare pSQLPrepare ; extern pfnSQLRowCount pSQLRowCount ; extern pfnSQLSetCursorName pSQLSetCursorName ; extern pfnSQLTransact pSQLTransact ; extern pfnSQLSetConnectOption pSQLSetConnectOption; extern pfnSQLDrivers pSQLDrivers ; extern pfnSQLDataSources pSQLDataSources ; extern pfnSQLBindParameter pSQLBindParameter ; extern pfnSQLGetInfo pSQLGetInfo ; extern pfnSQLMoreResults pSQLMoreResults ; # endif // _DYNODBC_H_