DCL 4.0
Loading...
Searching...
No Matches
IBConnection.h
Go to the documentation of this file.
1#ifndef __DCL_INTERBASE_CONNECTION_H_
2#define __DCL_INTERBASE_CONNECTION_H_ 20020321
3
4__DCL_BEGIN_NAMESPACE
5
6#define ISC_STATUS_VECTOR_LENGTH 20
7#define STATUS_FAILED(statusVector) (statusVector[0] == 1 && statusVector[2])
8
9class IBConnection;
10class IBQuery;
11class IBField;
12class IBParam;
13
15{
17protected:
18 short __dialect;
19 isc_db_handle __dbHandle;
20 isc_tr_handle __trHandle;
21 ISC_STATUS __status[ISC_STATUS_VECTOR_LENGTH];
22 ByteString __lastErrorMessage;
23
24public:
25 void setErrorStatus(SQL::Error _error,
26 const wchar_t* _filename, int _line);
27 void setErrorStatus(const ByteString& _message,
28 const wchar_t* _filename, int _line);
29
30 isc_db_handle* dbHandlePtr() { return &__dbHandle; }
31 isc_tr_handle* trHandlePtr() { return &__trHandle; }
32 short dialect() const { return __dialect; }
33 ISC_STATUS* statusVector() { return __status; }
34
35 // interface implementation
36public:
37 IBConnection(const wchar_t* _serverTitle);
38//protected:
39 virtual void destroy();
40 virtual ~IBConnection();
41 virtual bool __open(const char* _connString, size_t _connlen);
42 virtual bool __close();
43 virtual bool __execute(const char* _sql, size_t _sqllen);
44 virtual bool __startTrans();
45 virtual bool __commitTrans();
46 virtual bool __rollbackTrans();
47 virtual bool __createQueryInstance(SQL::Query** _queryHandleOut);
48 virtual bool __getErrorMessage(char* _buf, size_t* _buflen);
49 virtual bool __getServerInfo(char* _buf, size_t* _buflen);
50};
51
53 const wchar_t* _filename, int _line)
54{
55 Connection::setErrorStatus(_error, _filename, _line);
56 __lastErrorMessage.clear();
57}
58
59inline void IBConnection::setErrorStatus(const ByteString& _message,
60 const wchar_t* _filename, int _line)
61{
62 Connection::setErrorStatus(SQL::eServerError, _filename, _line);
63 __lastErrorMessage = _message;
64}
65
66#define __SET_ERROR(_error) \
67 setErrorStatus(_error, __THIS_FILE__, __LINE__)
68
69#define __SET_ERROR_MSG(str) \
70 setErrorStatus(str, __THIS_FILE__, __LINE__)
71
72__DCL_END_NAMESPACE
73
74#endif // __DCL_INTERBASE_CONNECTION_H_
#define ISC_STATUS_VECTOR_LENGTH
Definition IBConnection.h:6
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
short dialect() const
virtual bool __createQueryInstance(SQL::Query **_queryHandleOut)
virtual ~IBConnection()
virtual bool __execute(const char *_sql, size_t _sqllen)
isc_tr_handle * trHandlePtr()
void setErrorStatus(SQL::Error _error, const wchar_t *_filename, int _line)
virtual void destroy()
virtual bool __commitTrans()
virtual bool __getServerInfo(char *_buf, size_t *_buflen)
virtual bool __startTrans()
virtual bool __close()
ISC_STATUS * statusVector()
virtual bool __rollbackTrans()
virtual bool __open(const char *_connString, size_t _connlen)
virtual bool __getErrorMessage(char *_buf, size_t *_buflen)
isc_db_handle * dbHandlePtr()
IBConnection(const wchar_t *_serverTitle)
__PROTECTED const wchar_t int _line
Definition SQLCore.h:390
__PROTECTED const wchar_t * _filename
Definition SQLCore.h:390
Error
Definition SQLCore.h:19
@ eServerError
Definition SQLCore.h:21