⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db2api_linux.cpp

📁 通用的数据库中间库
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -