1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include "odbc/OFunctions.hxx"
21 #include <osl/process.h>
23 // Implib-Definitionen fuer ODBC-DLL/shared library:
25 namespace connectivity
27 T3SQLAllocHandle pODBC3SQLAllocHandle
;
28 T3SQLConnect pODBC3SQLConnect
;
29 T3SQLDriverConnect pODBC3SQLDriverConnect
;
30 T3SQLBrowseConnect pODBC3SQLBrowseConnect
;
31 T3SQLDataSources pODBC3SQLDataSources
;
32 T3SQLDrivers pODBC3SQLDrivers
;
33 T3SQLGetInfo pODBC3SQLGetInfo
;
34 T3SQLGetFunctions pODBC3SQLGetFunctions
;
35 T3SQLGetTypeInfo pODBC3SQLGetTypeInfo
;
36 T3SQLSetConnectAttr pODBC3SQLSetConnectAttr
;
37 T3SQLGetConnectAttr pODBC3SQLGetConnectAttr
;
38 T3SQLSetEnvAttr pODBC3SQLSetEnvAttr
;
39 T3SQLGetEnvAttr pODBC3SQLGetEnvAttr
;
40 T3SQLSetStmtAttr pODBC3SQLSetStmtAttr
;
41 T3SQLGetStmtAttr pODBC3SQLGetStmtAttr
;
42 T3SQLPrepare pODBC3SQLPrepare
;
43 T3SQLBindParameter pODBC3SQLBindParameter
;
44 T3SQLSetCursorName pODBC3SQLSetCursorName
;
45 T3SQLExecute pODBC3SQLExecute
;
46 T3SQLExecDirect pODBC3SQLExecDirect
;
47 T3SQLDescribeParam pODBC3SQLDescribeParam
;
48 T3SQLNumParams pODBC3SQLNumParams
;
49 T3SQLParamData pODBC3SQLParamData
;
50 T3SQLPutData pODBC3SQLPutData
;
51 T3SQLRowCount pODBC3SQLRowCount
;
52 T3SQLNumResultCols pODBC3SQLNumResultCols
;
53 T3SQLDescribeCol pODBC3SQLDescribeCol
;
54 T3SQLColAttribute pODBC3SQLColAttribute
;
55 T3SQLBindCol pODBC3SQLBindCol
;
56 T3SQLFetch pODBC3SQLFetch
;
57 T3SQLFetchScroll pODBC3SQLFetchScroll
;
58 T3SQLGetData pODBC3SQLGetData
;
59 T3SQLSetPos pODBC3SQLSetPos
;
60 T3SQLBulkOperations pODBC3SQLBulkOperations
;
61 T3SQLMoreResults pODBC3SQLMoreResults
;
62 T3SQLGetDiagRec pODBC3SQLGetDiagRec
;
63 T3SQLColumnPrivileges pODBC3SQLColumnPrivileges
;
64 T3SQLColumns pODBC3SQLColumns
;
65 T3SQLForeignKeys pODBC3SQLForeignKeys
;
66 T3SQLPrimaryKeys pODBC3SQLPrimaryKeys
;
67 T3SQLProcedureColumns pODBC3SQLProcedureColumns
;
68 T3SQLProcedures pODBC3SQLProcedures
;
69 T3SQLSpecialColumns pODBC3SQLSpecialColumns
;
70 T3SQLStatistics pODBC3SQLStatistics
;
71 T3SQLTablePrivileges pODBC3SQLTablePrivileges
;
72 T3SQLTables pODBC3SQLTables
;
73 T3SQLFreeStmt pODBC3SQLFreeStmt
;
74 T3SQLCloseCursor pODBC3SQLCloseCursor
;
75 T3SQLCancel pODBC3SQLCancel
;
76 T3SQLEndTran pODBC3SQLEndTran
;
77 T3SQLDisconnect pODBC3SQLDisconnect
;
78 T3SQLFreeHandle pODBC3SQLFreeHandle
;
79 T3SQLGetCursorName pODBC3SQLGetCursorName
;
80 T3SQLNativeSql pODBC3SQLNativeSql
;
82 bool LoadFunctions(oslModule pODBCso
);
84 // Take care of Dynamicly loading of the DLL/shared lib and Addresses:
85 // Returns sal_True at success
86 bool LoadLibrary_ODBC3(OUString
&_rPath
)
88 static bool bLoaded
= false;
89 static oslModule pODBCso
= NULL
;
94 _rPath
= "ODBC32.DLL";
98 _rPath
= "libiodbc.dylib";
100 _rPath
= "libodbc.so.1";
101 pODBCso
= osl_loadModule( _rPath
.pData
,SAL_LOADMODULE_NOW
);
103 _rPath
= "libodbc.so";
108 pODBCso
= osl_loadModule( _rPath
.pData
,SAL_LOADMODULE_NOW
);
112 return bLoaded
= LoadFunctions(pODBCso
);
116 bool LoadFunctions(oslModule pODBCso
)
119 if( ( pODBC3SQLAllocHandle
= (T3SQLAllocHandle
)osl_getFunctionSymbol(pODBCso
, OUString("SQLAllocHandle").pData
)) == NULL
)
121 if( ( pODBC3SQLConnect
= (T3SQLConnect
)osl_getFunctionSymbol(pODBCso
, OUString("SQLConnect").pData
)) == NULL
)
123 if( ( pODBC3SQLDriverConnect
= (T3SQLDriverConnect
)osl_getFunctionSymbol(pODBCso
, OUString("SQLDriverConnect").pData
)) == NULL
)
125 if( ( pODBC3SQLBrowseConnect
= (T3SQLBrowseConnect
)osl_getFunctionSymbol(pODBCso
, OUString("SQLBrowseConnect").pData
)) == NULL
)
127 if(( pODBC3SQLDataSources
= (T3SQLDataSources
)osl_getFunctionSymbol(pODBCso
, OUString("SQLDataSources").pData
)) == NULL
)
129 if(( pODBC3SQLDrivers
= (T3SQLDrivers
)osl_getFunctionSymbol(pODBCso
, OUString("SQLDrivers").pData
)) == NULL
)
131 if( ( pODBC3SQLGetInfo
= (T3SQLGetInfo
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetInfo").pData
)) == NULL
)
133 if(( pODBC3SQLGetFunctions
= (T3SQLGetFunctions
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetFunctions").pData
)) == NULL
)
135 if( ( pODBC3SQLGetTypeInfo
= (T3SQLGetTypeInfo
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetTypeInfo").pData
)) == NULL
)
137 if( ( pODBC3SQLSetConnectAttr
= (T3SQLSetConnectAttr
)osl_getFunctionSymbol(pODBCso
, OUString("SQLSetConnectAttr").pData
)) == NULL
)
139 if( ( pODBC3SQLGetConnectAttr
= (T3SQLGetConnectAttr
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetConnectAttr").pData
)) == NULL
)
141 if( ( pODBC3SQLSetEnvAttr
= (T3SQLSetEnvAttr
)osl_getFunctionSymbol(pODBCso
, OUString("SQLSetEnvAttr").pData
)) == NULL
)
143 if( ( pODBC3SQLGetEnvAttr
= (T3SQLGetEnvAttr
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetEnvAttr").pData
)) == NULL
)
145 if( ( pODBC3SQLSetStmtAttr
= (T3SQLSetStmtAttr
)osl_getFunctionSymbol(pODBCso
, OUString("SQLSetStmtAttr").pData
)) == NULL
)
147 if( ( pODBC3SQLGetStmtAttr
= (T3SQLGetStmtAttr
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetStmtAttr").pData
)) == NULL
)
149 if( ( pODBC3SQLPrepare
= (T3SQLPrepare
)osl_getFunctionSymbol(pODBCso
, OUString("SQLPrepare").pData
)) == NULL
)
151 if( ( pODBC3SQLBindParameter
= (T3SQLBindParameter
)osl_getFunctionSymbol(pODBCso
, OUString("SQLBindParameter").pData
)) == NULL
)
153 if( ( pODBC3SQLSetCursorName
= (T3SQLSetCursorName
)osl_getFunctionSymbol(pODBCso
, OUString("SQLSetCursorName").pData
)) == NULL
)
155 if( ( pODBC3SQLExecute
= (T3SQLExecute
)osl_getFunctionSymbol(pODBCso
, OUString("SQLExecute").pData
)) == NULL
)
157 if( ( pODBC3SQLExecDirect
= (T3SQLExecDirect
)osl_getFunctionSymbol(pODBCso
, OUString("SQLExecDirect").pData
)) == NULL
)
159 if( ( pODBC3SQLDescribeParam
= (T3SQLDescribeParam
)osl_getFunctionSymbol(pODBCso
, OUString("SQLDescribeParam").pData
)) == NULL
)
161 if( ( pODBC3SQLNumParams
= (T3SQLNumParams
)osl_getFunctionSymbol(pODBCso
, OUString("SQLNumParams").pData
)) == NULL
)
163 if( ( pODBC3SQLParamData
= (T3SQLParamData
)osl_getFunctionSymbol(pODBCso
, OUString("SQLParamData").pData
)) == NULL
)
165 if( ( pODBC3SQLPutData
= (T3SQLPutData
)osl_getFunctionSymbol(pODBCso
, OUString("SQLPutData").pData
)) == NULL
)
167 if( ( pODBC3SQLRowCount
= (T3SQLRowCount
)osl_getFunctionSymbol(pODBCso
, OUString("SQLRowCount").pData
)) == NULL
)
169 if( ( pODBC3SQLNumResultCols
= (T3SQLNumResultCols
)osl_getFunctionSymbol(pODBCso
, OUString("SQLNumResultCols").pData
)) == NULL
)
171 if( ( pODBC3SQLDescribeCol
= (T3SQLDescribeCol
)osl_getFunctionSymbol(pODBCso
, OUString("SQLDescribeCol").pData
)) == NULL
)
173 if( ( pODBC3SQLColAttribute
= (T3SQLColAttribute
)osl_getFunctionSymbol(pODBCso
, OUString("SQLColAttribute").pData
)) == NULL
)
175 if( ( pODBC3SQLBindCol
= (T3SQLBindCol
)osl_getFunctionSymbol(pODBCso
, OUString("SQLBindCol").pData
)) == NULL
)
177 if( ( pODBC3SQLFetch
= (T3SQLFetch
)osl_getFunctionSymbol(pODBCso
, OUString("SQLFetch").pData
)) == NULL
)
179 if( ( pODBC3SQLFetchScroll
= (T3SQLFetchScroll
)osl_getFunctionSymbol(pODBCso
, OUString("SQLFetchScroll").pData
)) == NULL
)
181 if( ( pODBC3SQLGetData
= (T3SQLGetData
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetData").pData
)) == NULL
)
183 if( ( pODBC3SQLSetPos
= (T3SQLSetPos
)osl_getFunctionSymbol(pODBCso
, OUString("SQLSetPos").pData
)) == NULL
)
185 if( ( pODBC3SQLBulkOperations
= (T3SQLBulkOperations
)osl_getFunctionSymbol(pODBCso
, OUString("SQLBulkOperations").pData
)) == NULL
)
187 if( ( pODBC3SQLMoreResults
= (T3SQLMoreResults
)osl_getFunctionSymbol(pODBCso
, OUString("SQLMoreResults").pData
)) == NULL
)
189 if( ( pODBC3SQLGetDiagRec
= (T3SQLGetDiagRec
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetDiagRec").pData
)) == NULL
)
191 if( ( pODBC3SQLColumnPrivileges
= (T3SQLColumnPrivileges
)osl_getFunctionSymbol(pODBCso
, OUString("SQLColumnPrivileges").pData
)) == NULL
)
193 if( ( pODBC3SQLColumns
= (T3SQLColumns
)osl_getFunctionSymbol(pODBCso
, OUString("SQLColumns").pData
)) == NULL
)
195 if( ( pODBC3SQLForeignKeys
= (T3SQLForeignKeys
)osl_getFunctionSymbol(pODBCso
, OUString("SQLForeignKeys").pData
)) == NULL
)
197 if( ( pODBC3SQLPrimaryKeys
= (T3SQLPrimaryKeys
)osl_getFunctionSymbol(pODBCso
, OUString("SQLPrimaryKeys").pData
)) == NULL
)
199 if( ( pODBC3SQLProcedureColumns
= (T3SQLProcedureColumns
)osl_getFunctionSymbol(pODBCso
, OUString("SQLProcedureColumns").pData
)) == NULL
)
201 if( ( pODBC3SQLProcedures
= (T3SQLProcedures
)osl_getFunctionSymbol(pODBCso
, OUString("SQLProcedures").pData
)) == NULL
)
203 if( ( pODBC3SQLSpecialColumns
= (T3SQLSpecialColumns
)osl_getFunctionSymbol(pODBCso
, OUString("SQLSpecialColumns").pData
)) == NULL
)
205 if( ( pODBC3SQLStatistics
= (T3SQLStatistics
)osl_getFunctionSymbol(pODBCso
, OUString("SQLStatistics").pData
)) == NULL
)
207 if( ( pODBC3SQLTablePrivileges
= (T3SQLTablePrivileges
)osl_getFunctionSymbol(pODBCso
, OUString("SQLTablePrivileges").pData
)) == NULL
)
209 if( ( pODBC3SQLTables
= (T3SQLTables
)osl_getFunctionSymbol(pODBCso
, OUString("SQLTables").pData
)) == NULL
)
211 if( ( pODBC3SQLFreeStmt
= (T3SQLFreeStmt
)osl_getFunctionSymbol(pODBCso
, OUString("SQLFreeStmt").pData
)) == NULL
)
213 if( ( pODBC3SQLCloseCursor
= (T3SQLCloseCursor
)osl_getFunctionSymbol(pODBCso
, OUString("SQLCloseCursor").pData
)) == NULL
)
215 if( ( pODBC3SQLCancel
= (T3SQLCancel
)osl_getFunctionSymbol(pODBCso
, OUString("SQLCancel").pData
)) == NULL
)
217 if( ( pODBC3SQLEndTran
= (T3SQLEndTran
)osl_getFunctionSymbol(pODBCso
, OUString("SQLEndTran").pData
)) == NULL
)
219 if( ( pODBC3SQLDisconnect
= (T3SQLDisconnect
)osl_getFunctionSymbol(pODBCso
, OUString("SQLDisconnect").pData
)) == NULL
)
221 if( ( pODBC3SQLFreeHandle
= (T3SQLFreeHandle
)osl_getFunctionSymbol(pODBCso
, OUString("SQLFreeHandle").pData
)) == NULL
)
223 if( ( pODBC3SQLGetCursorName
= (T3SQLGetCursorName
)osl_getFunctionSymbol(pODBCso
, OUString("SQLGetCursorName").pData
)) == NULL
)
225 if( ( pODBC3SQLNativeSql
= (T3SQLNativeSql
)osl_getFunctionSymbol(pODBCso
, OUString("SQLNativeSql").pData
)) == NULL
)
236 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */