49 const char* TSQLServer::fgFloatFmt =
"%e";
61 TSQLServer *TSQLServer::Connect(
const char *db,
const char *uid,
const char *pw)
66 if ((h = gROOT->GetPluginManager()->FindHandler(
"TSQLServer", db))) {
67 if (h->LoadPlugin() == -1)
69 serv = (TSQLServer *) h->ExecPlugin(3, db, uid, pw);
72 if (serv && serv->IsZombie()) {
85 Bool_t TSQLServer::Exec(
const char* sql)
87 TSQLResult* res = Query(sql);
88 if (res==0)
return kFALSE;
101 Int_t TSQLServer::GetErrorCode()
const
111 const char* TSQLServer::GetErrorMsg()
const
113 return GetErrorCode()==0 ? 0 : fErrorMsg.Data();
119 void TSQLServer::ClearError()
129 void TSQLServer::SetError(Int_t code,
const char* msg,
const char* method)
133 if ((method!=0) && fErrorOut)
134 Error(method,
"Code: %d Msg: %s", code, (msg ? msg :
"No message"));
141 Bool_t TSQLServer::StartTransaction()
143 return Exec(
"START TRANSACTION");
150 Bool_t TSQLServer::Commit()
152 return Exec(
"COMMIT");
159 Bool_t TSQLServer::Rollback()
161 return Exec(
"ROLLBACK");
182 TList* TSQLServer::GetTablesList(
const char* wild)
184 TSQLResult* res = GetTables(fDB.Data(), wild);
185 if (res==0)
return 0;
189 while ((row = res->Next())!=0) {
190 const char* tablename = row->GetField(0);
193 lst->SetOwner(kTRUE);
195 lst->Add(
new TObjString(tablename));
208 Bool_t TSQLServer::HasTable(
const char* tablename)
210 if ((tablename==0) || (strlen(tablename)==0))
return kFALSE;
212 TList* lst = GetTablesList(tablename);
213 if (lst==0)
return kFALSE;
224 while ((obj = iter()) != 0)
225 if (strcmp(tablename, obj->GetName())==0) res = kTRUE;
236 TSQLTableInfo* TSQLServer::GetTableInfo(
const char* tablename)
238 if ((tablename==0) || (*tablename==0))
return 0;
240 TSQLResult* res = GetColumns(fDB.Data(), tablename);
241 if (res==0)
return 0;
245 while ((row = res->Next())!=0) {
246 const char* columnname = row->GetField(0);
247 if (lst==0) lst =
new TList;
248 lst->Add(
new TSQLColumnInfo(columnname));
254 return new TSQLTableInfo(tablename, lst);
260 void TSQLServer::SetFloatFormat(
const char* fmt)
262 if (fmt==0) fmt =
"%e";
269 const char* TSQLServer::GetFloatFormat()