File: FirebirdDatabaseLayer.h

package info (click to toggle)
codelite 17.0.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 136,204 kB
  • sloc: cpp: 491,547; ansic: 280,393; php: 10,259; sh: 8,930; lisp: 7,664; vhdl: 6,518; python: 6,020; lex: 4,920; yacc: 3,123; perl: 2,385; javascript: 1,715; cs: 1,193; xml: 1,110; makefile: 804; cobol: 741; sql: 709; ruby: 620; f90: 566; ada: 534; asm: 464; fortran: 350; objc: 289; tcl: 258; java: 157; erlang: 61; pascal: 51; ml: 49; awk: 44; haskell: 36
file content (90 lines) | stat: -rw-r--r-- 3,318 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#ifndef __FIREBIRD_DATABASE_LAYER_H__
#define __FIREBIRD_DATABASE_LAYER_H__

#include "DatabaseLayerDef.h"
#include "DatabaseLayer.h"

#ifndef DONT_USE_DYNAMIC_DATABASE_LAYER_LINKING
class FirebirdInterface;
#endif

class WXDLLIMPEXP_DATABASELAYER FirebirdDatabaseLayer : public DatabaseLayer
{
public:
  // ctor()
  FirebirdDatabaseLayer();
  FirebirdDatabaseLayer(const wxString& strDatabase);
  FirebirdDatabaseLayer(const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
  FirebirdDatabaseLayer(const wxString& strServer , const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
  FirebirdDatabaseLayer(const wxString& strServer , const wxString& strDatabase, const wxString& strUser, const wxString& strPassword, const wxString& strRole);
  //FirebirdDatabaseLayer(isc_db_handle pDatabase) { m_pDatabase = pDatabase; }
  FirebirdDatabaseLayer(void* pDatabase) { m_pDatabase = pDatabase; }
  
  // dtor()
  virtual ~FirebirdDatabaseLayer();
  
  // open database
  virtual bool Open(const wxString& strDatabase);
  virtual bool Open();
  virtual bool Open(const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
  virtual bool Open(const wxString& strServer, const wxString& strDatabase, const wxString& strUser = wxT(""), const wxString& strPassword = wxT(""));
  
  // close database  
  virtual bool Close();
  
  // Is the connection to the database open?
  virtual bool IsOpen();

  // transaction support
  virtual void BeginTransaction();
  virtual void Commit();
  virtual void RollBack();
  
  // query database
  virtual int RunQuery(const wxString& strQuery, bool bParseQuery);
  virtual DatabaseResultSet* RunQueryWithResults(const wxString& strQuery);
  
  // PreparedStatement support
  virtual PreparedStatement* PrepareStatement(const wxString& strQuery);
  
  static int TranslateErrorCode(int nCode);
  //static wxString TranslateErrorCodeToString(FirebirdInterface* pInterface, int nCode, ISC_STATUS_ARRAY status);
  static wxString TranslateErrorCodeToString(FirebirdInterface* pInterface, int nCode, void* status);
  static bool IsAvailable();

  void SetServer(const wxString& strServer) { m_strServer = strServer; }
  void SetDatabase(const wxString& strDatabase) { m_strDatabase = strDatabase; }
  void SetUser(const wxString& strUser) { m_strUser = strUser; }
  void SetPassword(const wxString& strPassword) { m_strPassword = strPassword; }
  void SetRole(const wxString& strRole) { m_strRole = strRole; }

  // Database schema API contributed by M. Szeftel (author of wxActiveRecordGenerator)
  virtual bool TableExists(const wxString& table);
  virtual bool ViewExists(const wxString& view);
  virtual wxArrayString GetTables();
  virtual wxArrayString GetViews();
  virtual wxArrayString GetColumns(const wxString& table);

private:
  void Connect();
  void InterpretErrorCodes(); 
  
#ifndef DONT_USE_DYNAMIC_DATABASE_LAYER_LINKING
  FirebirdInterface* m_pInterface;
#endif
  wxString m_strServer;
  wxString m_strDatabase;
  wxString m_strUser;
  wxString m_strPassword;
  wxString m_strRole;

  //isc_db_handle m_pDatabase;
  void* m_pDatabase;
  //isc_tr_handle m_pTransaction;
  void* m_pTransaction;
  //ISC_STATUS_ARRAY m_Status;
  void* m_pStatus;
};

#endif // __FIREBIRD_DATABASE_LAYER_H__