Index: trunk/MagicSoft/Mars/datacenter/macros/fillganymed.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/macros/fillganymed.C	(revision 9372)
+++ trunk/MagicSoft/Mars/datacenter/macros/fillganymed.C	(revision 9377)
@@ -64,5 +64,5 @@
 #include <TSQLRow.h>
 
-#include "MSQLServer.h"
+#include "MSQLMagic.h"
 
 #include "MStatusArray.h"
@@ -72,34 +72,5 @@
 using namespace std;
 
-// --------------------------------------------------------------------------
-//
-// Checks whether an entry is already existing
-//
-Bool_t ExistStr(MSQLServer &serv, const char *column, const char *table, Int_t test)
-{
-    TString query(Form("SELECT %s FROM %s WHERE %s='%d'", column, table, column, test));
-    TSQLResult *res = serv.Query(query);
-    if (!res)
-        return kFALSE;
-
-    TSQLRow *row;
-
-    Bool_t rc = kFALSE;
-    while ((row=res->Next()))
-    {
-        if ((*row)[0])
-        {
-            rc = kTRUE;
-            break;
-        }
-    }
-
-    delete res;
-
-    return rc;
-}
-
-
-int Process(MSQLServer &serv, TString fname, Bool_t dummy)
+int Process(MSQLMagic &serv, TString fname, Bool_t dummy)
 {
     TFile file(fname, "READ");
@@ -168,54 +139,23 @@
 //    cout << "  Significance Rate:  " << S/TMath::Sqrt(tm/3600.) << " sigma/sqrt(h)" << endl;
 
+    TString vars =  Form(" fExcessEvents=%d, "
+                         " fBackgroundEvents=%d, "
+                         " fSignalEvents=%d, "
+                         " fSignificance=%s, "
+                         " fScaleFactor=%s, "
+                         " fEffOnTime=%d ",
+                         exc, bgd, sig,
+                         signif.Data(),
+                         scale.Data(), tm);
 
-    //build query, insert information into the DB
-    //if entry is already existing: update query
-    //else: insert query
-    TString query;
-    if (!ExistStr(serv, "fDataSetNumber", "Ganymed", ds))
-    {
-        query = Form("INSERT Ganymed SET"
-                     " fDataSetNumber=%d,"
-                     " fExcessEvents=%d, "
-                     " fBackgroundEvents=%d, "
-                     " fSignalEvents=%d, "
-                     " fSignificance=%s, "
-                     " fScaleFactor=%s, "
-                     " fEffOnTime=%d ",
-                     ds, exc, bgd, sig,
-                     signif.Data(),
-                     scale.Data(), tm);
-    }
-    else
-    {
-        query = Form("UPDATE Ganymed SET"
-                     " fExcessEvents=%d, "
-                     " fBackgroundEvents=%d, "
-                     " fSignalEvents=%d, "
-                     " fSignificance=%s, "
-                     " fScaleFactor=%s, "
-                     " fEffOnTime=%d "
-                     " WHERE fDataSetNumber=%d ",
-                     exc, bgd, sig, signif.Data(),
-                     scale.Data(), tm, ds);
-    }
 
-    cout << "q: " << query << endl;
-    if (dummy)
-        return 1;
+    TString where = Form("fDataSetNumber=%d", ds);
 
-    TSQLResult *res = serv.Query(query);
-    if (!res)
-    {
-        cout << "ERROR - Query failed: " << query << endl;
-        return 2;
-    }
-    delete res;
-    return 1;
+    return serv.InsertUpdate("Ganymed", vars, where) ? 1 : 2;
 }
 
 int fillganymed(TString fname, Bool_t dummy=kTRUE)
 {
-    MSQLServer serv("sql.rc");
+    MSQLMagic serv("sql.rc");
     if (!serv.IsConnected())
     {
@@ -231,5 +171,6 @@
     cout << endl;
 
-    //process file
+    serv.SetIsDummy(dummy);
+
     return Process(serv, fname, dummy);
 }
