VisualIB  1.0
IBExpress library for making use of Borland IBExpress outside of C++Builder
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
classVIBDataSet.h
Go to the documentation of this file.
1 
7 #ifndef CLASSVIBDATASET_H__
8 #define CLASSVIBDATASET_H__
9 
10 #include <string>
11 #include "VIBProperties.h"
12 
13 struct VIBDataSet;
14 struct VIBDatabase;
15 struct VIBTransaction;
16 
17 namespace VIB
18 {
19  class Database;
20  class Transaction;
21 
26  class DataSet
27  {
28  protected:
30 
31  public:
37  DataSet(VIBDataSet *pvds = NULL);
41  virtual ~DataSet();
42 
43  // Methods
49  void Open();
55  void First();
63  void Next();
69  void Close();
74  void Prepare();
79  bool Eof();
84  std::string Plan();
85 
86  // Property classes
87 
92  {
93  protected:
94  friend class DataSet;
96  std::string fieldname;
97  public:
102  FieldByNameClass(DataSet *pParent);
103 
110  };
111  friend class FieldByNameClass;
112 
113 
114  class FieldProp;
115 
121  {
122  protected:
123  friend class FieldProp;
124  int index;
126 
127  public:
132  FieldClass(DataSet *pds);
133 
156  };
157  friend class FieldClass;
158 
163  class FieldProp
164  {
165  protected:
168 
169  public:
174  FieldProp(DataSet *pds) : ds(pds), fc(pds) {}
175 
182  {
183  fc.index = i;
184  fc.ds = ds;
185  return &fc;
186  }
187  };
188 
193  {
194  protected:
197 
198  public:
199  FieldsClass(DataSet *pParent);
200 
213  };
214 
219  {
220  protected:
222 
223  public:
228  SelectSQLClass(DataSet *pParent);
229 
234  void Clear();
240  void Add(const std::string &str);
241 
249  };
250  friend class SelectSQLClass;
251 
252  protected:
253  // Property class instances
257 
258  public:
269  FieldByNameClass *FieldByName(const std::string &fieldname);
270 
271  // Properties
316  };
317 }
318 
319 #endif
320 
321 // EOF
322