1 /***************************************************************************
2 * Copyright (C) 2007 by Prabakaran Thirumalai *
3 * praba_tuty@yahoo.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
20 #ifndef SQLODBCCONNECTION_H
21 #define SQLODBCCONNECTION_H
23 #include<AbsSqlConnection.h>
24 #include<SqlFactory.h>
29 SQLRETURN (*SQLAllocHandlePtr
)(SQLSMALLINT
, SQLHANDLE
, SQLHANDLE
*);
30 SQLRETURN (*SQLSetEnvAttrPtr
)(SQLHENV
, SQLINTEGER
, SQLPOINTER
, SQLINTEGER
);
31 SQLRETURN (*SQLDriverConnectPtr
)(SQLHDBC
, SQLHWND
, SQLCHAR
*, SQLSMALLINT
, SQLCHAR
*, SQLSMALLINT
, SQLSMALLINT
*, SQLUSMALLINT
);
32 SQLRETURN (*SQLGetDiagRecPtr
)(SQLSMALLINT
, SQLHANDLE
, SQLSMALLINT
, SQLCHAR
*, SQLINTEGER
*, SQLCHAR
*, SQLSMALLINT
, SQLSMALLINT
*);
33 SQLRETURN (*SQLSetConnectAttrPtr
)(SQLHDBC
, SQLINTEGER
, SQLPOINTER
, SQLINTEGER
);
34 SQLRETURN (*SQLFreeHandlePtr
)(SQLSMALLINT
, SQLHANDLE
);
35 SQLRETURN (*SQLTransactPtr
)(SQLHENV
, SQLHDBC
, SQLUSMALLINT
);
37 SQLRETURN (*SQLExecDirectPtr
)(SQLHSTMT
, SQLCHAR
*, SQLINTEGER
);
38 SQLRETURN (*SQLPreparePtr
)(SQLHSTMT
, SQLCHAR
*, SQLINTEGER
);
39 SQLRETURN (*SQLNumResultColsPtr
)(SQLHSTMT
, SQLSMALLINT
*);
40 SQLRETURN (*SQLDescribeColPtr
)(SQLHSTMT
, SQLUSMALLINT
, SQLCHAR
*, SQLSMALLINT
, SQLSMALLINT
*, SQLSMALLINT
*, SQLULEN
*,SQLSMALLINT
*, SQLSMALLINT
*);
41 SQLRETURN (*SQLBindColPtr
)(SQLHSTMT
, SQLUSMALLINT
, SQLSMALLINT
, SQLPOINTER
, SQLLEN
, SQLLEN
*);
42 SQLRETURN (*SQLNumParamsPtr
)(SQLHSTMT
, SQLSMALLINT
*);
43 SQLRETURN (*SQLDescribeParamPtr
)(SQLHSTMT
, SQLUSMALLINT
, SQLSMALLINT
*, SQLULEN
*, SQLSMALLINT
*, SQLSMALLINT
*);
44 SQLRETURN (*SQLBindParameterPtr
)( SQLHSTMT
, SQLUSMALLINT
, SQLSMALLINT
, SQLSMALLINT
, SQLSMALLINT
, SQLULEN
, SQLSMALLINT
, SQLPOINTER
, SQLLEN
, SQLLEN
*);
45 SQLRETURN (*SQLExecutePtr
)(SQLHSTMT
);
46 SQLRETURN (*SQLRowCountPtr
)(SQLHSTMT
, SQLLEN
*);
47 SQLRETURN (*SQLFetchPtr
)(SQLHSTMT
);
48 SQLRETURN (*SQLFetchScrollPtr
)(SQLHSTMT
, SQLSMALLINT
, SQLLEN
);
49 SQLRETURN (*SQLCloseCursorPtr
)(SQLHSTMT
);
50 SQLRETURN (*SQLPrimaryKeysPtr
)( SQLHSTMT
, SQLCHAR
*, SQLSMALLINT
, SQLCHAR
*, SQLSMALLINT
, SQLCHAR
*, SQLSMALLINT
);
51 SQLRETURN (*SQLGetDataPtr
)(SQLHSTMT
,SQLUSMALLINT
,SQLSMALLINT
,SQLPOINTER
, SQLLEN
,SQLLEN
*);
52 SQLRETURN (*SQLDisconnectPtr
)(SQLHDBC
);
53 SQLRETURN (*SQLTablesPtr
)(SQLHSTMT
,SQLCHAR
*, SQLSMALLINT
, SQLCHAR
* , SQLSMALLINT
, SQLCHAR
*, SQLSMALLINT
, SQLCHAR
*,SQLSMALLINT
);
54 SQLRETURN (*SQLProcedureColumnsPtr
)(SQLHSTMT
, SQLCHAR
*, SQLSMALLINT
, SQLCHAR
*, SQLSMALLINT
, SQLCHAR
*, SQLSMALLINT
,SQLCHAR
*, SQLSMALLINT
);
59 * @class SqlOdbcConnection
66 class SqlOdbcConnection
: public AbsSqlConnection
69 char errState
[STATE_LENGTH
];
70 char dsName
[IDENTIFIER_LENGTH
];
76 char dsString
[IDENTIFIER_LENGTH
];
77 IsolationLevel prevIsoLevel
;
80 strcpy(errState
,"00000");
83 prevIsoLevel
= READ_COMMITTED
;
87 ~SqlOdbcConnection(){}
89 void setDsName(char *dsname
){ strcpy(dsName
,dsname
);}
90 char *getDsName(){return dsName
;}
91 void setTrDbName(char *name
);
92 TDBInfo
getTrDbName(){return tdbName
;}
93 static bool symbolsLoaded
;
94 static struct SQLFuncPtrs ODBCFuncPtrs
;
96 void setErrorState( SQLHDBC dbc
);
97 DbRetVal
loadSymbols();
99 //Note::forced to implement this as it is pure virtual in base class
100 Connection
& getConnObject(){ return dummyConn
; }
101 bool isConnectionOpen() { if (isConnOpen
) return true; return false; }
103 DbRetVal
connect (char *user
, char * pass
);
105 DbRetVal
disconnect();
111 DbRetVal
beginTrans (IsolationLevel isoLevel
, TransSyncMode mode
);
113 friend class SqlFactory
;