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

📄 infapi_linux.cpp

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