VisualIB  1.0
IBExpress library for making use of Borland IBExpress outside of C++Builder
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
classVIBSQL.h
Go to the documentation of this file.
1 
7 #ifndef CLASSVIBSQL_H__
8 #define CLASSVIBSQL_H__
9 
10 #include "../vibsql.h"
11 #include "VIBProperties.h"
12 
13 struct VIBDatabase;
14 struct VIBTransaction;
15 
16 namespace VIB
17 {
18  class Database;
19  class Transaction;
20 
25  class SQL
26  {
27  protected:
29 
30  public:
36  SQL(VIBSQL *pvsql = NULL);
40  virtual ~SQL();
41 
50  int Call(int ErrCode, bool RaiseError);
55  void CheckClosed();
60  void CheckOpen();
65  void CheckValidStatement();
70  void Close();
75  void ExecQuery();
80  void FreeHandle();
85  void Prepare();
91  int FieldIndex(const std::string &FieldName);
92 
94  std::string GetUniqueRelationName();
95 
96  // Property classes
97 
102  class SQLClass
103  {
104  protected:
106  public:
111  SQLClass(SQL *pParent);
112 
121  };
122  friend class SQLClass;
123 
124  // Class for individual properties
125  class ParamsSetClass;
126 
131  {
132  protected:
133  friend ParamsSetClass;
134  std::string name;
136  public:
141  ParamClass(SQL *pParent);
142 
146  };
147  friend class ParamClass;
148 
154  {
155  protected:
158  public:
163  ParamsSetClass(SQL *pParent) : parent(pParent), pc(pParent) {}
164 
170  ParamClass *ByName(const std::string &name);
171  };
172 
173  protected:
174  // Property instances
177 
178  public:
179  // Properties
275  Property<SQLClass *> _SQL; // NB: Not same name as in C++Builder!
304  };
305 }
306 
307 #endif
308 
309 // EOF
310