12 #ifndef ROOT_TSQLServer
13 #define ROOT_TSQLServer
41 class TSQLServer :
public TObject {
53 : fType(), fHost(), fDB(), fPort(-1), fErrorCode(0),
54 fErrorMsg(), fErrorOut(kTRUE) { ClearError(); }
57 void SetError(Int_t code,
const char* msg,
const char* method = 0);
59 static const char* fgFloatFmt;
74 virtual ~TSQLServer() { }
76 virtual void Close(Option_t *option=
"") = 0;
77 virtual TSQLResult *Query(
const char *sql) = 0;
78 virtual Bool_t Exec(
const char* sql);
79 virtual TSQLStatement *Statement(
const char*, Int_t = 100)
80 { AbstractMethod(
"Statement");
return 0; }
81 virtual Bool_t HasStatement()
const {
return kFALSE; }
82 virtual Int_t SelectDataBase(
const char *dbname) = 0;
83 virtual TSQLResult *GetDataBases(
const char *wild = 0) = 0;
84 virtual TSQLResult *GetTables(
const char *dbname,
const char *wild = 0) = 0;
85 virtual TList *GetTablesList(
const char* wild = 0);
86 virtual Bool_t HasTable(
const char* tablename);
87 virtual TSQLTableInfo *GetTableInfo(
const char* tablename);
88 virtual TSQLResult *GetColumns(
const char *dbname,
const char *table,
const char *wild = 0) = 0;
89 virtual Int_t GetMaxIdentifierLength() {
return 20; }
90 virtual Int_t CreateDataBase(
const char *dbname) = 0;
91 virtual Int_t DropDataBase(
const char *dbname) = 0;
92 virtual Int_t Reload() = 0;
93 virtual Int_t Shutdown() = 0;
94 virtual const char *ServerInfo() = 0;
95 virtual Bool_t IsConnected()
const {
return fPort == -1 ? kFALSE : kTRUE; }
96 const char *GetDBMS()
const {
return fType.Data(); }
97 const char *GetDB()
const {
return fDB.Data(); }
98 const char *GetHost()
const {
return fHost.Data(); }
99 Int_t GetPort()
const {
return fPort; }
101 virtual Bool_t IsError()
const {
return GetErrorCode()!=0; }
102 virtual Int_t GetErrorCode()
const;
103 virtual const char* GetErrorMsg()
const;
104 virtual void EnableErrorOutput(Bool_t on = kTRUE) { fErrorOut = on; }
106 virtual Bool_t StartTransaction();
107 virtual Bool_t Commit();
108 virtual Bool_t Rollback();
110 virtual Bool_t PingVerify() {
return kFALSE; }
111 virtual Int_t Ping() {
return -9999; }
113 static TSQLServer *Connect(
const char *db,
const char *uid,
const char *pw);
115 static void SetFloatFormat(
const char* fmt =
"%e");
116 static const char* GetFloatFormat();
118 ClassDef(TSQLServer,0)