1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_connectivity.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir //-------------------------------------------------------------------------- 32*cdf0e10cSrcweir #include "odbc/OFunctions.hxx" 33*cdf0e10cSrcweir #include <osl/process.h> 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir // Implib-Definitionen fuer ODBC-DLL/shared library: 36*cdf0e10cSrcweir 37*cdf0e10cSrcweir namespace connectivity 38*cdf0e10cSrcweir { 39*cdf0e10cSrcweir namespace adabas 40*cdf0e10cSrcweir { 41*cdf0e10cSrcweir T3SQLAllocHandle pODBC3SQLAllocHandle; 42*cdf0e10cSrcweir T3SQLConnect pODBC3SQLConnect; 43*cdf0e10cSrcweir T3SQLDriverConnect pODBC3SQLDriverConnect; 44*cdf0e10cSrcweir T3SQLBrowseConnect pODBC3SQLBrowseConnect; 45*cdf0e10cSrcweir T3SQLDataSources pODBC3SQLDataSources; 46*cdf0e10cSrcweir T3SQLDrivers pODBC3SQLDrivers; 47*cdf0e10cSrcweir T3SQLGetInfo pODBC3SQLGetInfo; 48*cdf0e10cSrcweir T3SQLGetFunctions pODBC3SQLGetFunctions; 49*cdf0e10cSrcweir T3SQLGetTypeInfo pODBC3SQLGetTypeInfo; 50*cdf0e10cSrcweir T3SQLSetConnectAttr pODBC3SQLSetConnectAttr; 51*cdf0e10cSrcweir T3SQLGetConnectAttr pODBC3SQLGetConnectAttr; 52*cdf0e10cSrcweir T3SQLSetEnvAttr pODBC3SQLSetEnvAttr; 53*cdf0e10cSrcweir T3SQLGetEnvAttr pODBC3SQLGetEnvAttr; 54*cdf0e10cSrcweir T3SQLSetStmtAttr pODBC3SQLSetStmtAttr; 55*cdf0e10cSrcweir T3SQLGetStmtAttr pODBC3SQLGetStmtAttr; 56*cdf0e10cSrcweir //T3SQLSetDescField pODBC3SQLSetDescField; 57*cdf0e10cSrcweir //T3SQLGetDescField pODBC3SQLGetDescField; 58*cdf0e10cSrcweir //T3SQLGetDescRec pODBC3SQLGetDescRec; 59*cdf0e10cSrcweir //T3SQLSetDescRec pODBC3SQLSetDescRec; 60*cdf0e10cSrcweir T3SQLPrepare pODBC3SQLPrepare; 61*cdf0e10cSrcweir T3SQLBindParameter pODBC3SQLBindParameter; 62*cdf0e10cSrcweir //T3SQLGetCursorName pODBC3SQLGetCursorName; 63*cdf0e10cSrcweir T3SQLSetCursorName pODBC3SQLSetCursorName; 64*cdf0e10cSrcweir T3SQLExecute pODBC3SQLExecute; 65*cdf0e10cSrcweir T3SQLExecDirect pODBC3SQLExecDirect; 66*cdf0e10cSrcweir //T3SQLNativeSql pODBC3SQLNativeSql; 67*cdf0e10cSrcweir T3SQLDescribeParam pODBC3SQLDescribeParam; 68*cdf0e10cSrcweir T3SQLNumParams pODBC3SQLNumParams; 69*cdf0e10cSrcweir T3SQLParamData pODBC3SQLParamData; 70*cdf0e10cSrcweir T3SQLPutData pODBC3SQLPutData; 71*cdf0e10cSrcweir T3SQLRowCount pODBC3SQLRowCount; 72*cdf0e10cSrcweir T3SQLNumResultCols pODBC3SQLNumResultCols; 73*cdf0e10cSrcweir T3SQLDescribeCol pODBC3SQLDescribeCol; 74*cdf0e10cSrcweir T3SQLColAttribute pODBC3SQLColAttribute; 75*cdf0e10cSrcweir T3SQLBindCol pODBC3SQLBindCol; 76*cdf0e10cSrcweir T3SQLFetch pODBC3SQLFetch; 77*cdf0e10cSrcweir T3SQLFetchScroll pODBC3SQLFetchScroll; 78*cdf0e10cSrcweir T3SQLGetData pODBC3SQLGetData; 79*cdf0e10cSrcweir T3SQLSetPos pODBC3SQLSetPos; 80*cdf0e10cSrcweir T3SQLBulkOperations pODBC3SQLBulkOperations; 81*cdf0e10cSrcweir T3SQLMoreResults pODBC3SQLMoreResults; 82*cdf0e10cSrcweir //T3SQLGetDiagField pODBC3SQLGetDiagField; 83*cdf0e10cSrcweir T3SQLGetDiagRec pODBC3SQLGetDiagRec; 84*cdf0e10cSrcweir T3SQLColumnPrivileges pODBC3SQLColumnPrivileges; 85*cdf0e10cSrcweir T3SQLColumns pODBC3SQLColumns; 86*cdf0e10cSrcweir T3SQLForeignKeys pODBC3SQLForeignKeys; 87*cdf0e10cSrcweir T3SQLPrimaryKeys pODBC3SQLPrimaryKeys; 88*cdf0e10cSrcweir T3SQLProcedureColumns pODBC3SQLProcedureColumns; 89*cdf0e10cSrcweir T3SQLProcedures pODBC3SQLProcedures; 90*cdf0e10cSrcweir T3SQLSpecialColumns pODBC3SQLSpecialColumns; 91*cdf0e10cSrcweir T3SQLStatistics pODBC3SQLStatistics; 92*cdf0e10cSrcweir T3SQLTablePrivileges pODBC3SQLTablePrivileges; 93*cdf0e10cSrcweir T3SQLTables pODBC3SQLTables; 94*cdf0e10cSrcweir T3SQLFreeStmt pODBC3SQLFreeStmt; 95*cdf0e10cSrcweir T3SQLCloseCursor pODBC3SQLCloseCursor; 96*cdf0e10cSrcweir T3SQLCancel pODBC3SQLCancel; 97*cdf0e10cSrcweir T3SQLEndTran pODBC3SQLEndTran; 98*cdf0e10cSrcweir T3SQLDisconnect pODBC3SQLDisconnect; 99*cdf0e10cSrcweir T3SQLFreeHandle pODBC3SQLFreeHandle; 100*cdf0e10cSrcweir T3SQLGetCursorName pODBC3SQLGetCursorName; 101*cdf0e10cSrcweir T3SQLNativeSql pODBC3SQLNativeSql; 102*cdf0e10cSrcweir 103*cdf0e10cSrcweir 104*cdf0e10cSrcweir sal_Bool LoadFunctions(oslModule pODBCso); 105*cdf0e10cSrcweir // ------------------------------------------------------------------------- 106*cdf0e10cSrcweir sal_Bool LoadLibrary_ADABAS(::rtl::OUString &_rPath) 107*cdf0e10cSrcweir { 108*cdf0e10cSrcweir static sal_Bool bLoaded = sal_False; 109*cdf0e10cSrcweir static oslModule pODBCso = NULL; 110*cdf0e10cSrcweir 111*cdf0e10cSrcweir if (bLoaded) 112*cdf0e10cSrcweir return sal_True; 113*cdf0e10cSrcweir 114*cdf0e10cSrcweir rtl_uString* pPath = NULL; 115*cdf0e10cSrcweir ::rtl::OUString sTemp(RTL_CONSTASCII_USTRINGPARAM("DBROOT")); 116*cdf0e10cSrcweir if ( osl_getEnvironment(sTemp.pData,&pPath) == osl_Process_E_None && pPath ) 117*cdf0e10cSrcweir { 118*cdf0e10cSrcweir 119*cdf0e10cSrcweir #if ( defined(SOLARIS) && defined(SPARC)) || defined(LINUX) || defined(MACOSX) 120*cdf0e10cSrcweir _rPath = ::rtl::OUString(pPath); 121*cdf0e10cSrcweir _rPath += ::rtl::OUString::createFromAscii("/lib/"); 122*cdf0e10cSrcweir #endif 123*cdf0e10cSrcweir rtl_uString_release(pPath); 124*cdf0e10cSrcweir } 125*cdf0e10cSrcweir else 126*cdf0e10cSrcweir { 127*cdf0e10cSrcweir _rPath = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("The variable DBROOT is not set.")); 128*cdf0e10cSrcweir return sal_False; 129*cdf0e10cSrcweir } 130*cdf0e10cSrcweir const sal_Char* pLibraryAsciiName = NULL; 131*cdf0e10cSrcweir 132*cdf0e10cSrcweir #if defined(WNT) 133*cdf0e10cSrcweir pLibraryAsciiName = "SQLOD32.DLL"; 134*cdf0e10cSrcweir #elif ( defined(SOLARIS) && defined(SPARC)) || defined(LINUX) 135*cdf0e10cSrcweir pLibraryAsciiName = "odbclib.so"; 136*cdf0e10cSrcweir #elif defined(MACOSX) 137*cdf0e10cSrcweir pLibraryAsciiName = "odbclib.dylib"; 138*cdf0e10cSrcweir #endif 139*cdf0e10cSrcweir if ( !pLibraryAsciiName ) 140*cdf0e10cSrcweir return sal_False; 141*cdf0e10cSrcweir 142*cdf0e10cSrcweir _rPath += ::rtl::OUString::createFromAscii( pLibraryAsciiName ); 143*cdf0e10cSrcweir pODBCso = osl_loadModule( _rPath.pData,SAL_LOADMODULE_NOW ); 144*cdf0e10cSrcweir if( !pODBCso) 145*cdf0e10cSrcweir return sal_False; 146*cdf0e10cSrcweir 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir return bLoaded = LoadFunctions(pODBCso); 149*cdf0e10cSrcweir } 150*cdf0e10cSrcweir // ------------------------------------------------------------------------- 151*cdf0e10cSrcweir 152*cdf0e10cSrcweir sal_Bool LoadFunctions(oslModule pODBCso) 153*cdf0e10cSrcweir { 154*cdf0e10cSrcweir 155*cdf0e10cSrcweir if( ( pODBC3SQLAllocHandle = (T3SQLAllocHandle)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLAllocHandle").pData )) == NULL ) 156*cdf0e10cSrcweir return sal_False; 157*cdf0e10cSrcweir if( ( pODBC3SQLConnect = (T3SQLConnect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLConnect").pData )) == NULL ) 158*cdf0e10cSrcweir return sal_False; 159*cdf0e10cSrcweir if( ( pODBC3SQLDriverConnect = (T3SQLDriverConnect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDriverConnect").pData )) == NULL ) 160*cdf0e10cSrcweir return sal_False; 161*cdf0e10cSrcweir if( ( pODBC3SQLBrowseConnect = (T3SQLBrowseConnect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLBrowseConnect").pData )) == NULL ) 162*cdf0e10cSrcweir return sal_False; 163*cdf0e10cSrcweir if( ( pODBC3SQLGetInfo = (T3SQLGetInfo)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetInfo").pData )) == NULL ) 164*cdf0e10cSrcweir return sal_False; 165*cdf0e10cSrcweir if( ( pODBC3SQLGetTypeInfo = (T3SQLGetTypeInfo)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetTypeInfo").pData )) == NULL ) 166*cdf0e10cSrcweir return sal_False; 167*cdf0e10cSrcweir if( ( pODBC3SQLSetConnectAttr = (T3SQLSetConnectAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetConnectAttr").pData )) == NULL ) 168*cdf0e10cSrcweir return sal_False; 169*cdf0e10cSrcweir if( ( pODBC3SQLGetConnectAttr = (T3SQLGetConnectAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetConnectAttr").pData )) == NULL ) 170*cdf0e10cSrcweir return sal_False; 171*cdf0e10cSrcweir if( ( pODBC3SQLSetEnvAttr = (T3SQLSetEnvAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetEnvAttr").pData )) == NULL ) 172*cdf0e10cSrcweir return sal_False; 173*cdf0e10cSrcweir if( ( pODBC3SQLGetEnvAttr = (T3SQLGetEnvAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetEnvAttr").pData )) == NULL ) 174*cdf0e10cSrcweir return sal_False; 175*cdf0e10cSrcweir if( ( pODBC3SQLSetStmtAttr = (T3SQLSetStmtAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetStmtAttr").pData )) == NULL ) 176*cdf0e10cSrcweir return sal_False; 177*cdf0e10cSrcweir if( ( pODBC3SQLGetStmtAttr = (T3SQLGetStmtAttr)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetStmtAttr").pData )) == NULL ) 178*cdf0e10cSrcweir return sal_False; 179*cdf0e10cSrcweir /*if( ( pODBC3SQLSetDescField = (T3SQLSetDescField)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetDescField").pData )) == NULL ) 180*cdf0e10cSrcweir return sal_False; 181*cdf0e10cSrcweir if( ( pODBC3SQLGetDescField = (T3SQLGetDescField)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetDescField").pData )) == NULL ) 182*cdf0e10cSrcweir return sal_False;*/ 183*cdf0e10cSrcweir /*if( ( pODBC3SQLGetDescRec = (T3SQLGetDescRec)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetDescRec").pData )) == NULL ) 184*cdf0e10cSrcweir return sal_False; 185*cdf0e10cSrcweir if( ( pODBC3SQLSetDescRec = (T3SQLSetDescRec)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetDescRec").pData )) == NULL ) 186*cdf0e10cSrcweir return sal_False;*/ 187*cdf0e10cSrcweir if( ( pODBC3SQLPrepare = (T3SQLPrepare)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLPrepare").pData )) == NULL ) 188*cdf0e10cSrcweir return sal_False; 189*cdf0e10cSrcweir if( ( pODBC3SQLBindParameter = (T3SQLBindParameter)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLBindParameter").pData )) == NULL ) 190*cdf0e10cSrcweir return sal_False; 191*cdf0e10cSrcweir // if( ( pODBC3SQLGetCursorName = (T3SQLGetCursorName)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetCursorName").pData )) == NULL ) 192*cdf0e10cSrcweir // return sal_False; 193*cdf0e10cSrcweir if( ( pODBC3SQLSetCursorName = (T3SQLSetCursorName)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetCursorName").pData )) == NULL ) 194*cdf0e10cSrcweir return sal_False; 195*cdf0e10cSrcweir if( ( pODBC3SQLExecute = (T3SQLExecute)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLExecute").pData )) == NULL ) 196*cdf0e10cSrcweir return sal_False; 197*cdf0e10cSrcweir if( ( pODBC3SQLExecDirect = (T3SQLExecDirect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLExecDirect").pData )) == NULL ) 198*cdf0e10cSrcweir return sal_False; 199*cdf0e10cSrcweir /*if( ( pODBC3SQLNativeSql = (T3SQLNativeSql)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLNativeSql").pData )) == NULL ) 200*cdf0e10cSrcweir return sal_False;*/ 201*cdf0e10cSrcweir if( ( pODBC3SQLDescribeParam = (T3SQLDescribeParam)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDescribeParam").pData )) == NULL ) 202*cdf0e10cSrcweir return sal_False; 203*cdf0e10cSrcweir if( ( pODBC3SQLNumParams = (T3SQLNumParams)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLNumParams").pData )) == NULL ) 204*cdf0e10cSrcweir return sal_False; 205*cdf0e10cSrcweir if( ( pODBC3SQLParamData = (T3SQLParamData)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLParamData").pData )) == NULL ) 206*cdf0e10cSrcweir return sal_False; 207*cdf0e10cSrcweir if( ( pODBC3SQLPutData = (T3SQLPutData)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLPutData").pData )) == NULL ) 208*cdf0e10cSrcweir return sal_False; 209*cdf0e10cSrcweir if( ( pODBC3SQLRowCount = (T3SQLRowCount)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLRowCount").pData )) == NULL ) 210*cdf0e10cSrcweir return sal_False; 211*cdf0e10cSrcweir if( ( pODBC3SQLNumResultCols = (T3SQLNumResultCols)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLNumResultCols").pData )) == NULL ) 212*cdf0e10cSrcweir return sal_False; 213*cdf0e10cSrcweir if( ( pODBC3SQLDescribeCol = (T3SQLDescribeCol)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDescribeCol").pData )) == NULL ) 214*cdf0e10cSrcweir return sal_False; 215*cdf0e10cSrcweir if( ( pODBC3SQLColAttribute = (T3SQLColAttribute)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLColAttribute").pData )) == NULL ) 216*cdf0e10cSrcweir return sal_False; 217*cdf0e10cSrcweir if( ( pODBC3SQLBindCol = (T3SQLBindCol)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLBindCol").pData )) == NULL ) 218*cdf0e10cSrcweir return sal_False; 219*cdf0e10cSrcweir if( ( pODBC3SQLFetch = (T3SQLFetch)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLFetch").pData )) == NULL ) 220*cdf0e10cSrcweir return sal_False; 221*cdf0e10cSrcweir if( ( pODBC3SQLFetchScroll = (T3SQLFetchScroll)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLFetchScroll").pData )) == NULL ) 222*cdf0e10cSrcweir return sal_False; 223*cdf0e10cSrcweir if( ( pODBC3SQLGetData = (T3SQLGetData)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetData").pData )) == NULL ) 224*cdf0e10cSrcweir return sal_False; 225*cdf0e10cSrcweir if( ( pODBC3SQLSetPos = (T3SQLSetPos)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSetPos").pData )) == NULL ) 226*cdf0e10cSrcweir return sal_False; 227*cdf0e10cSrcweir if( ( pODBC3SQLMoreResults = (T3SQLMoreResults)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLMoreResults").pData )) == NULL ) 228*cdf0e10cSrcweir return sal_False; 229*cdf0e10cSrcweir /*if( ( pODBC3SQLGetDiagField = (T3SQLGetDiagField)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetDiagField").pData )) == NULL ) 230*cdf0e10cSrcweir return sal_False;*/ 231*cdf0e10cSrcweir if( ( pODBC3SQLGetDiagRec = (T3SQLGetDiagRec)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetDiagRec").pData )) == NULL ) 232*cdf0e10cSrcweir return sal_False; 233*cdf0e10cSrcweir if( ( pODBC3SQLColumnPrivileges = (T3SQLColumnPrivileges)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLColumnPrivileges").pData )) == NULL ) 234*cdf0e10cSrcweir return sal_False; 235*cdf0e10cSrcweir if( ( pODBC3SQLColumns = (T3SQLColumns)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLColumns").pData )) == NULL ) 236*cdf0e10cSrcweir return sal_False; 237*cdf0e10cSrcweir if( ( pODBC3SQLForeignKeys = (T3SQLForeignKeys)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLForeignKeys").pData )) == NULL ) 238*cdf0e10cSrcweir return sal_False; 239*cdf0e10cSrcweir if( ( pODBC3SQLPrimaryKeys = (T3SQLPrimaryKeys)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLPrimaryKeys").pData )) == NULL ) 240*cdf0e10cSrcweir return sal_False; 241*cdf0e10cSrcweir if( ( pODBC3SQLProcedureColumns = (T3SQLProcedureColumns)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLProcedureColumns").pData )) == NULL ) 242*cdf0e10cSrcweir return sal_False; 243*cdf0e10cSrcweir if( ( pODBC3SQLProcedures = (T3SQLProcedures)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLProcedures").pData )) == NULL ) 244*cdf0e10cSrcweir return sal_False; 245*cdf0e10cSrcweir if( ( pODBC3SQLSpecialColumns = (T3SQLSpecialColumns)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLSpecialColumns").pData )) == NULL ) 246*cdf0e10cSrcweir return sal_False; 247*cdf0e10cSrcweir if( ( pODBC3SQLStatistics = (T3SQLStatistics)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLStatistics").pData )) == NULL ) 248*cdf0e10cSrcweir return sal_False; 249*cdf0e10cSrcweir if( ( pODBC3SQLTablePrivileges = (T3SQLTablePrivileges)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLTablePrivileges").pData )) == NULL ) 250*cdf0e10cSrcweir return sal_False; 251*cdf0e10cSrcweir if( ( pODBC3SQLTables = (T3SQLTables)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLTables").pData )) == NULL ) 252*cdf0e10cSrcweir return sal_False; 253*cdf0e10cSrcweir if( ( pODBC3SQLFreeStmt = (T3SQLFreeStmt)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLFreeStmt").pData )) == NULL ) 254*cdf0e10cSrcweir return sal_False; 255*cdf0e10cSrcweir if( ( pODBC3SQLCloseCursor = (T3SQLCloseCursor)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLCloseCursor").pData )) == NULL ) 256*cdf0e10cSrcweir return sal_False; 257*cdf0e10cSrcweir if( ( pODBC3SQLCancel = (T3SQLCancel)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLCancel").pData )) == NULL ) 258*cdf0e10cSrcweir return sal_False; 259*cdf0e10cSrcweir if( ( pODBC3SQLEndTran = (T3SQLEndTran)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLEndTran").pData )) == NULL ) 260*cdf0e10cSrcweir return sal_False; 261*cdf0e10cSrcweir if( ( pODBC3SQLDisconnect = (T3SQLDisconnect)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLDisconnect").pData )) == NULL ) 262*cdf0e10cSrcweir return sal_False; 263*cdf0e10cSrcweir if( ( pODBC3SQLFreeHandle = (T3SQLFreeHandle)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLFreeHandle").pData )) == NULL ) 264*cdf0e10cSrcweir return sal_False; 265*cdf0e10cSrcweir if( ( pODBC3SQLGetCursorName = (T3SQLGetCursorName)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLGetCursorName").pData )) == NULL ) 266*cdf0e10cSrcweir return sal_False; 267*cdf0e10cSrcweir if( ( pODBC3SQLNativeSql = (T3SQLNativeSql)osl_getFunctionSymbol(pODBCso, ::rtl::OUString::createFromAscii("SQLNativeSql").pData )) == NULL ) 268*cdf0e10cSrcweir return sal_False; 269*cdf0e10cSrcweir 270*cdf0e10cSrcweir return sal_True; 271*cdf0e10cSrcweir } 272*cdf0e10cSrcweir // ------------------------------------------------------------------------- 273*cdf0e10cSrcweir } 274*cdf0e10cSrcweir } 275*cdf0e10cSrcweir 276