📄 db2api_linux.cpp
字号:
// db2API_linux.cpp////////////////////////////////////////////////////////////////////////#include <SQLAPI.h>#include <db2API.h>#include <assert.h>
#include "samisc.h"
#include "errmsg.h"#include <dlfcn.h>static const char *g_sDB2DLLName = "libdb2.so";static void* g_hDB2DLL = NULL;long g_nDB2DLLVersionLoaded = 0;static long g_nDB2DLLRefs = 0;// API definitionsdb2API g_db2API;db2API::db2API(){ SQLAllocConnect = NULL; SQLAllocEnv = NULL; SQLAllocHandle = NULL; SQLAllocStmt = NULL; SQLBindCol = NULL; SQLBindFileToCol = NULL; SQLBindFileToParam = NULL; SQLBindParameter = NULL; SQLBrowseConnect = NULL; SQLBuildDataLink = NULL; SQLBulkOperations = NULL; SQLCancel = NULL; SQLCloseCursor = NULL; SQLColAttribute = NULL; SQLColAttributes = NULL; SQLColumnPrivileges = NULL; SQLColumns = NULL; SQLConnect = NULL; SQLCopyDesc = NULL; SQLDataSources = NULL; SQLDescribeCol = NULL; SQLDescribeParam = NULL; SQLDisconnect = NULL; SQLDriverConnect = NULL; SQLEndTran = NULL; SQLError = NULL; SQLExecDirect = NULL; SQLExecute = NULL; SQLExtendedBind = NULL; SQLExtendedFetch = NULL; SQLExtendedPrepare = NULL; SQLFetch = NULL; SQLFetchScroll = NULL; SQLForeignKeys = NULL; SQLFreeConnect = NULL; SQLFreeEnv = NULL; SQLFreeHandle = NULL; SQLFreeStmt = NULL; SQLGetConnectAttr = NULL; SQLGetConnectOption = NULL; SQLGetCursorName = NULL; SQLGetData = NULL; SQLGetDataLinkAttr = NULL; SQLGetDescField = NULL; SQLGetDescRec = NULL; SQLGetDiagField = NULL; SQLGetDiagRec = NULL; SQLGetEnvAttr = NULL; SQLGetFunctions = NULL; SQLGetInfo = NULL; SQLGetLength = NULL; SQLGetPosition = NULL; SQLGetSQLCA = NULL; SQLGetStmtAttr = NULL; SQLGetStmtOption = NULL; SQLGetSubString = NULL; SQLGetTypeInfo = NULL; SQLMoreResults = NULL; SQLNativeSql = NULL; SQLNumParams = NULL; SQLNumResultCols = NULL; SQLParamData = NULL; SQLParamOptions = NULL; SQLPrepare = NULL; SQLPrimaryKeys = NULL; SQLProcedureColumns = NULL; SQLProcedures = NULL; SQLPutData = NULL; SQLRowCount = NULL; SQLSetColAttributes = NULL; SQLSetConnectAttr = NULL; SQLSetConnection = NULL; SQLSetConnectOption = NULL; SQLSetCursorName = NULL; SQLSetDescField = NULL; SQLSetDescRec = NULL; SQLSetEnvAttr = NULL; SQLSetParam = NULL; SQLSetPos = NULL; SQLSetStmtAttr = NULL; SQLSetStmtOption = NULL; SQLSpecialColumns = NULL; SQLStatistics = NULL; SQLTablePrivileges = NULL; SQLTables = NULL; SQLTransact = NULL;}db2ConnectionHandles::db2ConnectionHandles(){ m_hevn = (SQLHENV)NULL; m_hdbc = (SQLHDBC)NULL;}db2CommandHandles::db2CommandHandles(){ m_hstmt = (SQLHSTMT)NULL;}static void LoadAPI(){ g_db2API.SQLAllocConnect = (SQLAllocConnect_t)::dlsym(g_hDB2DLL, "SQLAllocConnect"); assert(g_db2API.SQLAllocConnect != NULL); g_db2API.SQLAllocEnv = (SQLAllocEnv_t)::dlsym(g_hDB2DLL, "SQLAllocEnv"); assert(g_db2API.SQLAllocEnv != NULL); g_db2API.SQLAllocHandle = (SQLAllocHandle_t)::dlsym(g_hDB2DLL, "SQLAllocHandle"); assert(g_db2API.SQLAllocHandle != NULL); g_db2API.SQLAllocStmt = (SQLAllocStmt_t)::dlsym(g_hDB2DLL, "SQLAllocStmt"); assert(g_db2API.SQLAllocStmt != NULL); g_db2API.SQLBindCol = (SQLBindCol_t)::dlsym(g_hDB2DLL, "SQLBindCol"); assert(g_db2API.SQLBindCol != NULL); g_db2API.SQLBindFileToCol = (SQLBindFileToCol_t)::dlsym(g_hDB2DLL, "SQLBindFileToCol"); assert(g_db2API.SQLBindFileToCol != NULL); g_db2API.SQLBindFileToParam = (SQLBindFileToParam_t)::dlsym(g_hDB2DLL, "SQLBindFileToParam"); assert(g_db2API.SQLBindFileToParam != NULL); g_db2API.SQLBindParameter = (SQLBindParameter_t)::dlsym(g_hDB2DLL, "SQLBindParameter"); assert(g_db2API.SQLBindParameter != NULL); g_db2API.SQLBrowseConnect = (SQLBrowseConnect_t)::dlsym(g_hDB2DLL, "SQLBrowseConnect"); assert(g_db2API.SQLBrowseConnect != NULL); g_db2API.SQLBuildDataLink = (SQLBuildDataLink_t)::dlsym(g_hDB2DLL, "SQLBuildDataLink"); assert(g_db2API.SQLBuildDataLink != NULL); g_db2API.SQLBulkOperations = (SQLBulkOperations_t)::dlsym(g_hDB2DLL, "SQLBulkOperations"); assert(g_db2API.SQLBulkOperations != NULL); g_db2API.SQLCancel = (SQLCancel_t)::dlsym(g_hDB2DLL, "SQLCancel"); assert(g_db2API.SQLCancel != NULL); g_db2API.SQLCloseCursor = (SQLCloseCursor_t)::dlsym(g_hDB2DLL, "SQLCloseCursor"); assert(g_db2API.SQLCloseCursor != NULL); g_db2API.SQLColAttribute = (SQLColAttribute_t)::dlsym(g_hDB2DLL, "SQLColAttribute"); assert(g_db2API.SQLColAttribute != NULL); g_db2API.SQLColAttributes = (SQLColAttributes_t)::dlsym(g_hDB2DLL, "SQLColAttributes"); assert(g_db2API.SQLColAttributes != NULL); g_db2API.SQLColumnPrivileges= (SQLColumnPrivileges_t)::dlsym(g_hDB2DLL, "SQLColumnPrivileges"); assert(g_db2API.SQLColumnPrivileges != NULL); g_db2API.SQLColumns = (SQLColumns_t)::dlsym(g_hDB2DLL, "SQLColumns"); assert(g_db2API.SQLColumns != NULL); g_db2API.SQLConnect = (SQLConnect_t)::dlsym(g_hDB2DLL, "SQLConnect"); assert(g_db2API.SQLConnect != NULL); g_db2API.SQLCopyDesc = (SQLCopyDesc_t)::dlsym(g_hDB2DLL, "SQLCopyDesc"); assert(g_db2API.SQLCopyDesc != NULL); g_db2API.SQLDataSources = (SQLDataSources_t)::dlsym(g_hDB2DLL, "SQLDataSources"); assert(g_db2API.SQLDataSources != NULL); g_db2API.SQLDescribeCol = (SQLDescribeCol_t)::dlsym(g_hDB2DLL, "SQLDescribeCol"); assert(g_db2API.SQLDescribeCol != NULL); g_db2API.SQLDescribeParam = (SQLDescribeParam_t)::dlsym(g_hDB2DLL, "SQLDescribeParam"); assert(g_db2API.SQLDescribeParam != NULL); g_db2API.SQLDisconnect = (SQLDisconnect_t)::dlsym(g_hDB2DLL, "SQLDisconnect"); assert(g_db2API.SQLDisconnect != NULL); g_db2API.SQLDriverConnect = (SQLDriverConnect_t)::dlsym(g_hDB2DLL, "SQLDriverConnect"); assert(g_db2API.SQLDriverConnect != NULL); g_db2API.SQLEndTran = (SQLEndTran_t)::dlsym(g_hDB2DLL, "SQLEndTran"); assert(g_db2API.SQLEndTran != NULL); g_db2API.SQLError = (SQLError_t)::dlsym(g_hDB2DLL, "SQLError"); assert(g_db2API.SQLError != NULL); g_db2API.SQLExecDirect = (SQLExecDirect_t)::dlsym(g_hDB2DLL, "SQLExecDirect"); assert(g_db2API.SQLExecDirect != NULL); g_db2API.SQLExecute = (SQLExecute_t)::dlsym(g_hDB2DLL, "SQLExecute"); assert(g_db2API.SQLExecute != NULL); g_db2API.SQLExtendedBind = (SQLExtendedBind_t)::dlsym(g_hDB2DLL, "SQLExtendedBind"); assert(g_db2API.SQLExtendedBind != NULL); g_db2API.SQLExtendedFetch = (SQLExtendedFetch_t)::dlsym(g_hDB2DLL, "SQLExtendedFetch"); assert(g_db2API.SQLExtendedFetch != NULL); g_db2API.SQLExtendedPrepare = (SQLExtendedPrepare_t)::dlsym(g_hDB2DLL, "SQLExtendedPrepare"); assert(g_db2API.SQLExtendedPrepare != NULL); g_db2API.SQLFetch = (SQLFetch_t)::dlsym(g_hDB2DLL, "SQLFetch"); assert(g_db2API.SQLFetch != NULL); g_db2API.SQLFetchScroll = (SQLFetchScroll_t)::dlsym(g_hDB2DLL, "SQLFetchScroll"); assert(g_db2API.SQLFetchScroll != NULL); g_db2API.SQLForeignKeys = (SQLForeignKeys_t)::dlsym(g_hDB2DLL, "SQLForeignKeys"); assert(g_db2API.SQLForeignKeys != NULL); g_db2API.SQLFreeConnect = (SQLFreeConnect_t)::dlsym(g_hDB2DLL, "SQLFreeConnect"); assert(g_db2API.SQLFreeConnect != NULL); g_db2API.SQLFreeEnv = (SQLFreeEnv_t)::dlsym(g_hDB2DLL, "SQLFreeEnv"); assert(g_db2API.SQLFreeEnv != NULL); g_db2API.SQLFreeHandle = (SQLFreeHandle_t)::dlsym(g_hDB2DLL, "SQLFreeHandle"); assert(g_db2API.SQLFreeHandle != NULL); g_db2API.SQLFreeStmt = (SQLFreeStmt_t)::dlsym(g_hDB2DLL, "SQLFreeStmt"); assert(g_db2API.SQLFreeStmt != NULL); g_db2API.SQLGetConnectAttr = (SQLGetConnectAttr_t)::dlsym(g_hDB2DLL, "SQLGetConnectAttr"); assert(g_db2API.SQLGetConnectAttr != NULL); g_db2API.SQLGetConnectOption= (SQLGetConnectOption_t)::dlsym(g_hDB2DLL, "SQLGetConnectOption"); assert(g_db2API.SQLGetConnectOption != NULL); g_db2API.SQLGetCursorName = (SQLGetCursorName_t)::dlsym(g_hDB2DLL, "SQLGetCursorName"); assert(g_db2API.SQLGetCursorName != NULL); g_db2API.SQLGetData = (SQLGetData_t)::dlsym(g_hDB2DLL, "SQLGetData"); assert(g_db2API.SQLGetData != NULL); g_db2API.SQLGetDataLinkAttr = (SQLGetDataLinkAttr_t)::dlsym(g_hDB2DLL, "SQLGetDataLinkAttr"); assert(g_db2API.SQLGetDataLinkAttr != NULL);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -