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 #define Dom_IsConnected "IsConnected"
00017
00018
00019 class GDbField
00020 {
00021 public:
00022 virtual ~GDbField() {};
00023
00024
00025 virtual operator char*() { LgiAssert(0); return 0; }
00026 virtual GDbField &operator =(char*) { LgiAssert(0); return *this; }
00027
00028
00029 virtual char *Name() { return 0; }
00030 virtual bool Name(char *Str) { return 0; }
00031 virtual int Type() { return 0; }
00032 virtual bool Type(int NewType) { return 0; }
00033 virtual int Length() { return 0; }
00034 virtual bool Length(int NewLength) { return 0; }
00035 virtual char *Description() { return 0; }
00036 virtual bool Description(char *NewDesc) { return 0; }
00037
00038
00039 virtual bool Set(GVariant &v) { return 0; }
00040 virtual bool Get(GVariant &v) { return 0; }
00041 };
00042
00043 class GDbRecordset
00044 {
00045 public:
00046 virtual ~GDbRecordset() {};
00047
00048
00049 virtual char *Name() = 0;
00050
00051
00052 virtual GDbField &operator [](int Index) = 0;
00053 virtual GDbField &operator [](char *Name) = 0;
00054 virtual GDbField *InsertField( const char *Name,
00055 int Type,
00056 int Length = 0,
00057 int Index = -1) = 0;
00058 virtual bool DeleteField(GDbField *Fld) = 0;
00059 virtual int Fields() = 0;
00060
00061
00062 virtual bool End() = 0;
00063
00064
00065 virtual bool AddNew() = 0;
00066 virtual bool Edit() = 0;
00067 virtual bool Update() = 0;
00068 virtual void Cancel() = 0;
00069
00070
00071 virtual bool MoveFirst() = 0;
00072 virtual bool MoveNext() = 0;
00073 virtual bool MovePrev() = 0;
00074 virtual bool MoveLast() = 0;
00075 virtual int SeekRecord(int i) = 0;
00076
00077
00078 virtual int RecordIndex() = 0;
00079 virtual int Records() = 0;
00080
00081
00082 virtual bool DeleteRecord() = 0;
00083 };
00084
00085 class GDb : public GDom
00086 {
00087 public:
00088 virtual ~GDb() {}
00089
00090
00091 virtual bool Connect(const char *Init) = 0;
00092 virtual bool Disconnect() = 0;
00093
00094
00095 virtual GDbRecordset *Open(char *Name) = 0;
00096 virtual bool Execute(char *Name) { return false; }
00097 virtual GDbRecordset *TableAt(int i) { return false; }
00098 virtual const char *GetErrorMsg() { return 0; }
00099 };
00100
00101
00102 extern GDb *OpenDbfDatabase(char *s);
00103 extern GDb *OpenAdoDatabase(char *s);
00104 extern GDb *OpenCsvDatabase(char *s);
00105 extern GDb *OpenTsvDatabase(char *s);
00106 extern GDb *OpenMetakitDatabase(char *s);
00107 extern GDb *OpenBfsDatabase(char *s);
00108 extern GDb *OpenLibmysqlDatabase(char *s);
00109
00110
00111 extern GDb *OpenMysqlDirectDatabase(char *s);
00112
00113
00114
00115
00116 extern char *LgiTsvTok(char *&s);
00117
00118
00119 #endif