📄 infapi_linux.cpp
字号:
g_infAPI.SQLGetTypeInfo = (SQLGetTypeInfo_t)dlsym(g_hInfDLL, "SQLGetTypeInfo"); assert(g_infAPI.SQLGetTypeInfo != NULL);
g_infAPI.SQLMoreResults = (SQLMoreResults_t)dlsym(g_hInfDLL, "SQLMoreResults"); assert(g_infAPI.SQLMoreResults != NULL);
g_infAPI.SQLNativeSql = (SQLNativeSql_t)dlsym(g_hInfDLL, "SQLNativeSql"); assert(g_infAPI.SQLNativeSql != NULL);
g_infAPI.SQLNumParams = (SQLNumParams_t)dlsym(g_hInfDLL, "SQLNumParams"); assert(g_infAPI.SQLNumParams != NULL);
g_infAPI.SQLNumResultCols = (SQLNumResultCols_t)dlsym(g_hInfDLL, "SQLNumResultCols"); assert(g_infAPI.SQLNumResultCols != NULL);
g_infAPI.SQLParamData = (SQLParamData_t)dlsym(g_hInfDLL, "SQLParamData"); assert(g_infAPI.SQLParamData != NULL);
g_infAPI.SQLParamOptions = (SQLParamOptions_t)dlsym(g_hInfDLL, "SQLParamOptions"); //assert(g_infAPI.SQLParamOptions != NULL);
g_infAPI.SQLPrepare = (SQLPrepare_t)dlsym(g_hInfDLL, "SQLPrepare"); assert(g_infAPI.SQLPrepare != NULL);
g_infAPI.SQLPrimaryKeys = (SQLPrimaryKeys_t)dlsym(g_hInfDLL, "SQLPrimaryKeys"); assert(g_infAPI.SQLPrimaryKeys != NULL);
g_infAPI.SQLProcedureColumns = (SQLProcedureColumns_t)dlsym(g_hInfDLL, "SQLProcedureColumns");assert(g_infAPI.SQLProcedureColumns != NULL);
g_infAPI.SQLProcedures = (SQLProcedures_t)dlsym(g_hInfDLL, "SQLProcedures"); assert(g_infAPI.SQLProcedures != NULL);
g_infAPI.SQLPutData = (SQLPutData_t)dlsym(g_hInfDLL, "SQLPutData"); assert(g_infAPI.SQLPutData != NULL);
g_infAPI.SQLRowCount = (SQLRowCount_t)dlsym(g_hInfDLL, "SQLRowCount"); assert(g_infAPI.SQLRowCount != NULL);
g_infAPI.SQLSetConnectAttr = (SQLSetConnectAttr_t)dlsym(g_hInfDLL, "SQLSetConnectAttr"); //assert(g_infAPI.SQLSetConnectAttr != NULL);
g_infAPI.SQLSetConnectOption = (SQLSetConnectOption_t)dlsym(g_hInfDLL, "SQLSetConnectOption");//assert(g_infAPI.SQLSetConnectOption != NULL);
g_infAPI.SQLSetCursorName = (SQLSetCursorName_t)dlsym(g_hInfDLL, "SQLSetCursorName"); assert(g_infAPI.SQLSetCursorName != NULL);
g_infAPI.SQLSetDescField = (SQLSetDescField_t)dlsym(g_hInfDLL, "SQLSetDescField"); //assert(g_infAPI.SQLSetDescField != NULL);
g_infAPI.SQLSetDescRec = (SQLSetDescRec_t)dlsym(g_hInfDLL, "SQLSetDescRec"); //assert(g_infAPI.SQLSetDescRec != NULL);
g_infAPI.SQLSetEnvAttr = (SQLSetEnvAttr_t)dlsym(g_hInfDLL, "SQLSetEnvAttr"); //assert(g_infAPI.SQLSetEnvAttr != NULL);
g_infAPI.SQLSetParam = (SQLSetParam_t)dlsym(g_hInfDLL, "SQLSetParam"); //assert(g_infAPI.SQLSetParam != NULL);
g_infAPI.SQLSetPos = (SQLSetPos_t)dlsym(g_hInfDLL, "SQLSetPos"); assert(g_infAPI.SQLSetPos != NULL);
g_infAPI.SQLSetScrollOptions = (SQLSetScrollOptions_t)dlsym(g_hInfDLL, "SQLSetScrollOptions");assert(g_infAPI.SQLSetScrollOptions != NULL);
g_infAPI.SQLSetStmtAttr = (SQLSetStmtAttr_t)dlsym(g_hInfDLL, "SQLSetStmtAttr"); //assert(g_infAPI.SQLSetStmtAttr != NULL);
g_infAPI.SQLSetStmtOption = (SQLSetStmtOption_t)dlsym(g_hInfDLL, "SQLSetStmtOption"); //assert(g_infAPI.SQLSetStmtOption != NULL);
g_infAPI.SQLSpecialColumns = (SQLSpecialColumns_t)dlsym(g_hInfDLL, "SQLSpecialColumns"); assert(g_infAPI.SQLSpecialColumns != NULL);
g_infAPI.SQLStatistics = (SQLStatistics_t)dlsym(g_hInfDLL, "SQLStatistics"); assert(g_infAPI.SQLStatistics != NULL);
g_infAPI.SQLTablePrivileges = (SQLTablePrivileges_t)dlsym(g_hInfDLL, "SQLTablePrivileges"); assert(g_infAPI.SQLTablePrivileges != NULL);
g_infAPI.SQLTables = (SQLTables_t)dlsym(g_hInfDLL, "SQLTables"); assert(g_infAPI.SQLTables != NULL);
g_infAPI.SQLTransact = (SQLTransact_t)dlsym(g_hInfDLL, "SQLTransact"); //assert(g_infAPI.SQLTransact != NULL);
}
static void ResetAPI()
{
g_infAPI.SQLAllocConnect = NULL; // 1.0
g_infAPI.SQLAllocEnv = NULL; // 1.0
g_infAPI.SQLAllocHandle = NULL; // 3.0
g_infAPI.SQLAllocStmt = NULL; // 1.0
g_infAPI.SQLBindCol = NULL; // 1.0
g_infAPI.SQLBindParameter = NULL; // 2.0
g_infAPI.SQLBrowseConnect = NULL; // 1.0
g_infAPI.SQLBulkOperations = NULL; // 3.0
g_infAPI.SQLCancel = NULL; // 1.0
g_infAPI.SQLCloseCursor = NULL; // 3.0
g_infAPI.SQLColAttribute = NULL; // 3,0
g_infAPI.SQLColAttributes = NULL; // 1.0
g_infAPI.SQLColumnPrivileges = NULL; // 1.0
g_infAPI.SQLColumns = NULL; // 1.0
g_infAPI.SQLConnect = NULL; // 1.0
g_infAPI.SQLCopyDesc = NULL; // 3.0
g_infAPI.SQLDataSources = NULL; // 1.0
g_infAPI.SQLDescribeCol = NULL; // 1.0
g_infAPI.SQLDescribeParam = NULL; // 1.0
g_infAPI.SQLDisconnect = NULL; // 1.0
g_infAPI.SQLDriverConnect = NULL; // 1.0
g_infAPI.SQLDrivers = NULL; // 2.0
g_infAPI.SQLEndTran = NULL; // 3.0
g_infAPI.SQLError = NULL; // 1.0
g_infAPI.SQLExecDirect = NULL; // 1.0
g_infAPI.SQLExecute = NULL; // 1.0
g_infAPI.SQLExtendedFetch = NULL; // 1.0
g_infAPI.SQLFetch = NULL; // 1.0
g_infAPI.SQLFetchScroll = NULL; // 1.0
g_infAPI.SQLForeignKeys = NULL; // 1.0
g_infAPI.SQLFreeConnect = NULL; // 1.0
g_infAPI.SQLFreeEnv = NULL; // 1.0
g_infAPI.SQLFreeHandle = NULL; // 3.0
g_infAPI.SQLFreeStmt = NULL; // 1.0
g_infAPI.SQLGetConnectAttr = NULL; // 3.0
g_infAPI.SQLGetConnectOption = NULL; // 1.0
g_infAPI.SQLGetCursorName = NULL; // 1.0
g_infAPI.SQLGetData = NULL; // 1.0
g_infAPI.SQLGetDescField = NULL; // 3.0
g_infAPI.SQLGetDescRec = NULL; // 3.0
g_infAPI.SQLGetDiagField = NULL; // 3.0
g_infAPI.SQLGetDiagRec = NULL; // 3.0
g_infAPI.SQLGetEnvAttr = NULL; // 3.0
g_infAPI.SQLGetFunctions = NULL; // 1.0
g_infAPI.SQLGetInfo = NULL; // 1.0
g_infAPI.SQLGetStmtAttr = NULL; // 3.0
g_infAPI.SQLGetStmtOption = NULL; // 1.0
g_infAPI.SQLGetTypeInfo = NULL; // 1.0
g_infAPI.SQLMoreResults = NULL; // 1.0
g_infAPI.SQLNativeSql = NULL; // 1.0
g_infAPI.SQLNumParams = NULL; // 1.0
g_infAPI.SQLNumResultCols = NULL; // 1.0
g_infAPI.SQLParamData = NULL; // 1.0
g_infAPI.SQLParamOptions = NULL; // 1.0
g_infAPI.SQLPrepare = NULL; // 1.0
g_infAPI.SQLPrimaryKeys = NULL; // 1.0
g_infAPI.SQLProcedureColumns = NULL; // 1.0
g_infAPI.SQLProcedures = NULL; // 1.0
g_infAPI.SQLPutData = NULL; // 1.0
g_infAPI.SQLRowCount = NULL; // 1.0
g_infAPI.SQLSetConnectAttr = NULL; // 3.0
g_infAPI.SQLSetConnectOption = NULL; // 1.0
g_infAPI.SQLSetCursorName = NULL; // 1.0
g_infAPI.SQLSetDescField = NULL; // 3.0
g_infAPI.SQLSetDescRec = NULL; // 3.0
g_infAPI.SQLSetEnvAttr = NULL; // 3.0
g_infAPI.SQLSetParam = NULL; // 1.0
g_infAPI.SQLSetPos = NULL; // 1.0
g_infAPI.SQLSetScrollOptions = NULL; // 1.0
g_infAPI.SQLSetStmtAttr = NULL; // 3.0
g_infAPI.SQLSetStmtOption = NULL; // 1.0
g_infAPI.SQLSpecialColumns = NULL; // 1.0
g_infAPI.SQLStatistics = NULL; // 1.0
g_infAPI.SQLTablePrivileges = NULL; // 1.0
g_infAPI.SQLTables = NULL; // 1.0
g_infAPI.SQLTransact = NULL; // 1.0
}
#include <stdio.h>
void AddInfSupport()
{
if(!g_hInfDLL)
{
long nVersion = 0;
const char *sInfDLLName = g_sInfDLLName1;
void *hInfDLL = NULL; // load Informix API library
hInfDLL = ::dlopen(sInfDLLName, RTLD_NOW|RTLD_GLOBAL); if(!hInfDLL) {
sInfDLLName = g_sInfDLLName2;
hInfDLL = ::dlopen(sInfDLLName, RTLD_NOW|RTLD_GLOBAL); }
if(hInfDLL)
{
g_hInfDLL = hInfDLL;
g_nInfDLLVersionLoaded = nVersion;
LoadAPI();
}
else
{ SAString sDLLs = g_sInfDLLName1;
sDLLs += "/";
sDLLs += g_sInfDLLName2;
throw SAException(SA_Library_Error, -1, -1, IDS_LOAD_LIBRARY_FAILS, "", (const char*)sDLLs);
} }
g_nInfDLLRefs++;
}
void ReleaseInfSupport()
{
assert(g_nInfDLLRefs > 0);
g_nInfDLLRefs--;
if(!g_nInfDLLRefs)
{
g_nInfDLLVersionLoaded = 0;
ResetAPI();
dlclose(g_hInfDLL);
g_hInfDLL = NULL;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -