00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __GDB_H
00012 #define __GDB_H
00013
00014 #include "GVariant.h"
00015
00016
00017 class GDbField
00018 {
00019 public:
00020 virtual ~GDbField() {};
00021
00022
00023 virtual char *Name() = 0;
00024 virtual bool Name(char *Str) = 0;
00025 virtual int Type() = 0;
00026 virtual bool Type(int NewType) = 0;
00027 virtual int Length() = 0;
00028 virtual bool Length(int NewLength) = 0;
00029 virtual char *Description() = 0;
00030 virtual bool Description(char *NewDesc) = 0;
00031
00032
00033 virtual bool Set(GVariant &v) = 0;
00034 virtual bool Get(GVariant &v) = 0;
00035 };
00036
00037 class GDbRecordset
00038 {
00039 public:
00040 virtual ~GDbRecordset() {};
00041
00042
00043 virtual char *Name() = 0;
00044
00045
00046 virtual GDbField *operator [](int Index) = 0;
00047 virtual GDbField *operator [](char *Name) = 0;
00048 virtual GDbField *InsertField( char *Name,
00049 int Type,
00050 int Length = 0,
00051 int Index = -1) = 0;
00052 virtual bool DeleteField(GDbField *Fld) = 0;
00053 virtual int Fields() = 0;
00054
00055
00056 virtual bool Bof() = 0;
00057 virtual bool Eof() = 0;
00058
00059
00060 virtual bool AddNew() = 0;
00061 virtual bool Edit() = 0;
00062 virtual bool Update() = 0;
00063 virtual void Cancel() = 0;
00064
00065
00066 virtual bool MoveFirst() = 0;
00067 virtual bool MoveNext() = 0;
00068 virtual bool MovePrev() = 0;
00069 virtual bool MoveLast() = 0;
00070 virtual int SeekRecord(int i) = 0;
00071
00072
00073 virtual int RecordIndex() = 0;
00074 virtual int Records() = 0;
00075
00076
00077 virtual bool DeleteRecord() = 0;
00078 };
00079
00080 class GDb
00081 {
00082 public:
00083 virtual ~GDb() {}
00084
00085
00086 virtual bool Connect(char *Init) = 0;
00087 virtual bool Disconnect() = 0;
00088
00089
00090 virtual GDbRecordset *Open(char *Name) = 0;
00091 virtual GDbRecordset *TableAt(int i) = 0;
00092 };
00093
00094
00095 extern GDb *OpenDbfDatabase(char *s);
00096 extern GDb *OpenAdoDatabase(char *s);
00097 extern GDb *OpenCsvDatabase(char *s);
00098 extern GDb *OpenMetakitDatabase(char *s);
00099 extern GDb *OpenBfsDatabase(char *s);
00100
00101 #endif