source: trunk/MagicSoft/Mars/msql/MSQLServer.h@ 4514

Last change on this file since 4514 was 4514, checked in by tbretz, 20 years ago
*** empty log message ***
File size: 3.7 KB
Line 
1#ifndef MARS_MSQLServer
2#define MARS_MSQLServer
3
4#ifndef ROOT_TList
5#include <TList.h>
6#endif
7
8class TArrayI;
9class TSQLServer;
10class TSQLResult;
11
12class MSQLServer : public TObject
13{
14 TSQLServer *fServ;
15
16 TString fDataBase;
17 TString fTable;
18 TString fColumn;
19
20 TList fList;
21
22 enum Type_t { kIsZombie, kIsServer, kIsDataBase, kIsTable, kIsColumn };
23
24 Type_t fType;
25
26 Bool_t IsFolder() const { return kTRUE; }
27
28 Bool_t PrintError(const char *txt, const char *q) const;
29
30 void PrintLine(const TArrayI &max) const;
31 void PrintTable(TSQLResult *res) const;
32 TString GetFields() const;
33
34 void BrowseDataBase(TBrowser *b);
35 void BrowseTable(TBrowser *b);
36 void BrowseColumn(TBrowser *b);
37 void BrowseServer(TBrowser *b);
38
39 void Browse(TBrowser *b)
40 {
41 if (!b)
42 return;
43
44 switch (fType)
45 {
46 case kIsServer: BrowseServer(b); break;
47 case kIsDataBase: BrowseDataBase(b); break;
48 case kIsTable: BrowseTable(b); break;
49 case kIsColumn: BrowseColumn(b); break;
50 default:
51 break;
52 }
53 }
54
55 const char *GetNameDataBase() const { return fDataBase; }
56 const char *GetNameTable() const { return Form("%s/%s", (const char*)fDataBase, (const char*)fTable); }
57 const char *GetNameColumn() const { return Form("%s/%s/%s", (const char*)fDataBase, (const char*)fTable, (const char*)fColumn); }
58
59 void Init(const char *connection, const char *user, const char *password);
60
61public:
62 MSQLServer(TSQLServer *serv, const char *dbname=0, const char *tname=0, const char *col=0)
63 : fServ(serv), fDataBase(dbname), fTable(tname), fColumn(col), fType(kIsZombie)
64 {
65 fList.SetOwner();
66
67 fType = kIsColumn;
68
69 if (fColumn.IsNull())
70 fType = kIsTable;
71
72 if (fTable.IsNull() && fColumn.IsNull())
73 fType = kIsDataBase;
74
75 if (fDataBase.IsNull() && fTable.IsNull() && fColumn.IsNull())
76 fType = kIsZombie;
77
78 if (!serv)
79 fType = kIsZombie;
80 }
81
82 MSQLServer(const char *connection, const char *user, const char *password);
83 MSQLServer(const char *link);
84 ~MSQLServer();
85
86 const char *GetName() const;
87
88 void Print(Option_t *o) const;
89 void Print() const { Print(""); } //*MENU*
90 void PrintQuery(const char *query) const; //*MENU*
91 void ShowColumns() const; //*MENU*
92 void ShowStatus() const; //*MENU*
93 void ShowTableIndex() const; //*MENU*
94 void ShowTableCreate() const; //*MENU*
95 void ShowVariables() const { PrintQuery("SHOW VARIABLES"); } //*MENU*
96 void ShowProcesses() const { PrintQuery("SHOW PROCESSLIST"); } //*MENU*
97
98 void Close(Option_t *option="");
99 TSQLResult *Query(const char *sql);
100 Int_t SelectDataBase(const char *dbname);
101 TSQLResult *GetDataBases(const char *wild = 0);
102 TSQLResult *GetTables(const char *dbname, const char *wild = 0);
103 TSQLResult *GetColumns(const char *dbname, const char *table, const char *wild = 0);
104 Int_t CreateDataBase(const char *dbname);
105 Int_t DropDataBase(const char *dbname);
106 Int_t Reload();
107 Int_t Shutdown();
108 const char *ServerInfo();
109 Bool_t IsConnected() const;
110
111 TString GetEntry(const char *where, const char *col=0, const char *table=0) const;
112
113 ClassDef(MSQLServer, 0) // An enhancement of TSQLServer
114};
115
116class MSQLColumn : public MSQLServer
117{
118private:
119 Bool_t IsFolder() const { return kFALSE; }
120
121public:
122 MSQLColumn(TSQLServer *serv, const char *dbname=0, const char *tname=0, const char *col=0)
123 : MSQLServer(serv, dbname, tname, col)
124 {
125 }
126 ClassDef(MSQLColumn, 0) // A workarount to let MSQLServer return kFALSE for IsFolder
127};
128
129#endif
Note: See TracBrowser for help on using the repository browser.