Index: trunk/MagicSoft/Mars/datacenter/macros/insertdataset.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/macros/insertdataset.C	(revision 8085)
+++ trunk/MagicSoft/Mars/datacenter/macros/insertdataset.C	(revision 8107)
@@ -53,78 +53,10 @@
 #include <iostream>
 #include <iomanip>
-#include <fstream>
 
 #include <TEnv.h>
 
-#include <MSQLServer.h>
-#include <TSQLRow.h>
-#include <TSQLResult.h>
+#include "MSQLMagic.h"
 
 using namespace std;
-
-Bool_t ExistStr(MSQLServer &serv, const char *column, const char *table, const char *test)
-{
-    TString query(Form("SELECT %s FROM %s WHERE %s='%s'", column, table, column, test));
-    TSQLResult *res = serv.Query(query);
-    if (!res)
-        return kFALSE;
-
-    Bool_t rc = kFALSE;
-
-    TSQLRow *row=res->Next();
-    if (row && (*row)[0])
-        rc=kTRUE;
-
-    delete res;
-    return rc;
-}
-
-//get key of a name
-// insert value, if it is not yet existing
-Int_t QueryNameKEY(MSQLServer &serv, Bool_t dummy, const char *col, const char *name, Bool_t insert=kTRUE)
-{
-    TString query;
-
-    query = Form("SELECT f%sKEY FROM %s WHERE f%sName='%s'", col, col, col, name);
-    TSQLResult *res = serv.Query(query);
-    if (!res)
-        return -1;
-
-    TSQLRow *row=res->Next();
-
-    Int_t rc = row && (*row)[0] ? atoi((*row)[0]) : -1;
-
-    delete res;
-
-    if (rc>=0)
-        return rc;
-
-    if (!insert)
-        return -1;
-
-    query = Form("INSERT %s (f%sName) VALUES (\"%s\");", col, col, name);
-
-    if (dummy)
-    {
-        cout << query << endl;
-        return 0;
-    }
-
-    res=serv.Query(query);
-    if (!res)
-        return -1;
-
-    delete res;
-
-    Int_t key = QueryNameKEY(serv, dummy, col, name, kFALSE);
-    if (key>0)
-    {
-        cout << "New " << col << ": " << name << endl;
-        return key;
-    }
-
-    cout << "ERROR: " << query << endl;
-    return kFALSE;
-}
 
 int insertdataset(TString number, TString source, TString wobble, TString comment, Bool_t dummy=kTRUE)
@@ -132,5 +64,5 @@
     TEnv env("sql.rc");
 
-    MSQLServer serv(env);
+    MSQLMagic serv(env);
     if (!serv.IsConnected())
     {
@@ -138,4 +70,7 @@
         return 0;
     }
+
+    serv.SetIdSummy(dummy);
+
     cout << "insertdataset" << endl;
     cout << "-------------" << endl;
@@ -145,5 +80,5 @@
 
     //get source key
-    Int_t sourcekey = QueryNameKEY(serv, dummy, "Source", source.Data(), kFALSE);
+    Int_t sourcekey = serv.QueryNameKEY("Source", source.Data(), kFALSE);
     if (sourcekey<0)
     {
@@ -156,38 +91,5 @@
 
     //if dataset is not yet in database, insert the information
-    if (!ExistStr(serv, "fDataSetNumber", "DataSets", number.Data())) // Form("%d", number)
-    {
-        TString query=Form("INSERT DataSets SET fDataSetNumber='%s', "
-                   " fSourceKEY=%d, fWobble='%s', fComment='%s' ",
-                   number.Data(), sourcekey, wobble.Data(), comment.Data());
-
-        if (dummy)
-        {
-            cout << query << endl;
-            return 0;
-        }
-
-        TSQLResult *res = serv.Query(query);
-        if (!res)
-        {
-            cout << "Error - could not insert dataset" << endl;
-            return 2;
-        }
-        delete res;
-
-        //add also entry in the table DataSetProcessStatus
-        query=Form("INSERT DataSetProcessStatus SET fDataSetNumber='%s', "
-                   " fDataSetInserted=Now() ",
-                   number.Data());
-
-        res = serv.Query(query);
-        if (!res)
-        {
-            cout << "Error - could not insert dataset" << endl;
-            return 2;
-        }
-        delete res;
-    }
-    else
+    if (serv.ExistStr("fDataSetNumber", "DataSets", number.Data())) // Form("%d", number)
     {
         cout << number << " already exists... " << endl;
@@ -195,4 +97,19 @@
     }
 
+    TString vals = Form("fDataSetNumber='%s', fSourceKEY=%d, "
+                        "fWobble='%s', fComment='%s' ", number.Data(),
+                        sourcekey, wobble.Data(), comment.Data());
+
+    Int_t rc = serv.Insert("DataSets", vals);
+
+    if (rc<=0) // dummy mode or failed
+        return 0;
+
+    vals = Form("fDataSetNumber='%s', fDataSetInserted=Now()", number.Data());
+    rc = serv.Insert("DataSetProcessStatus", vals);
+
+    if (rc<=0) // dummy mode or failed
+        return 0;
+
     return 1;
 }
Index: trunk/MagicSoft/Mars/datacenter/macros/insertdate.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/macros/insertdate.C	(revision 8085)
+++ trunk/MagicSoft/Mars/datacenter/macros/insertdate.C	(revision 8107)
@@ -45,34 +45,10 @@
 #include <iostream>
 #include <iomanip>
-#include <fstream>
 
 #include <TEnv.h>
 
-#include <MSQLServer.h>
-#include <TSQLRow.h>
-#include <TSQLResult.h>
+#include <MSQLMagic.h>
 
 using namespace std;
-
-Bool_t ExistStr(MSQLServer &serv, const char *column, const char *table, const char *test)
-{
-    TString query(Form("SELECT %s FROM %s WHERE %s='%s'", column, table, column, test));
-
-    cout << "query: " << query << endl;
-
-    TSQLResult *res = serv.Query(query);
-    if (!res)
-        return kFALSE;
-
-    Bool_t rc = kFALSE;
-
-    TSQLRow *row=res->Next();
-    if (row && (*row)[0])
-        rc=kTRUE;
-
-    delete res;
-    return rc;
-}
-
 
 int insertdate(TString date)
@@ -80,5 +56,5 @@
     TEnv env("sql.rc");
 
-    MSQLServer serv(env);
+    MSQLMagic serv(env);
     if (!serv.IsConnected())
     {
@@ -94,16 +70,13 @@
     //insert entry for date into the table SequenceBuildStatus,
     // if entry is not yet existing
-    if (!ExistStr(serv, "fDate", "SequenceBuildStatus", date))
+    if (!serv.ExistStr("fDate", "SequenceBuildStatus", date))
     {
-        TString query(Form("INSERT SequenceBuildStatus SET fDate='%s', fCCFilled=Now() ",
-                           date.Data()));
+        TString vals(Form("fDate='%s', fCCFilled=Now()", date.Data()));
 
-        TSQLResult *res = serv.Query(query);
-        if (!res)
-        {
-            cout << "Error - could not insert entry" << endl;
-            return 0;
-        }
-        delete res;
+        const Int_t rc = serv.Insert("SequenceBuildStatus", vals);
+        if (rc==kFALSE) // Query failed
+            return -1;
+        //if (rc<0)       // Dummy mode
+        //    return 0;
     }
     else
@@ -111,14 +84,13 @@
         cout << date << " already exists... do update. " << endl;
 
-        TString query="UPDATE SequenceBuildStatus SET fCCFilled=Now(), fExclusionsDone=NULL, ";
-        query +=Form("fSequenceEntriesBuilt=NULL WHERE fDate='%s' ", date.Data());
+        const Int_t rc = serv.Update("SequenceBuildStatus",
+                                     "fCCFilled=Now(), fExclusionsDone=NULL, fSequenceEntriesBuilt=NULL",
+                                     Form("fDate='%s'", date.Data()));
 
-        TSQLResult *res = serv.Query(query);
-        if (!res)
-        {
-            cout << "Error - could not update entry" << endl;
-            return 0;
-        }
-        delete res;
+        if (rc==kFALSE) // Query failed
+            return -1;
+        //if (rc<0)       // Dummy mode
+        //    return 0;
+
     }
 
Index: trunk/MagicSoft/Mars/datacenter/macros/insertsequence.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/macros/insertsequence.C	(revision 8085)
+++ trunk/MagicSoft/Mars/datacenter/macros/insertsequence.C	(revision 8107)
@@ -49,79 +49,12 @@
 #include <iostream>
 #include <iomanip>
-#include <fstream>
 
 #include <TEnv.h>
 
-#include <MSQLServer.h>
+#include <MSQLMagic.h>
 #include <TSQLRow.h>
 #include <TSQLResult.h>
 
 using namespace std;
-
-Bool_t ExistStr(MSQLServer &serv, const char *column, const char *table, const char *test)
-{
-    TString query(Form("SELECT %s FROM %s WHERE %s='%s'", column, table, column, test));
-    TSQLResult *res = serv.Query(query);
-    if (!res)
-        return kFALSE;
-
-    Bool_t rc = kFALSE;
-
-    TSQLRow *row=res->Next();
-    if (row && (*row)[0])
-        rc=kTRUE;
-
-    delete res;
-    return rc;
-}
-
-Int_t QueryNameKEY(MSQLServer &serv, Bool_t dummy, const char *col, const char *name, Bool_t insert=kTRUE)
-{
-    TString query;
-
-    query = Form("SELECT f%sKEY FROM %s WHERE f%sName='%s'", col, col, col, name);
-    TSQLResult *res = serv.Query(query);
-    if (!res)
-        return -1;
-
-    TSQLRow *row=res->Next();
-
-    Int_t rc = row && (*row)[0] ? atoi((*row)[0]) : -1;
-
-    delete res;
-
-    if (rc>=0)
-        return rc;
-
-    if (!insert)
-        return -1;
-
-    query = Form("INSERT %s (f%sName) VALUES (\"%s\");", col, col, name);
-
-    if (dummy)
-    {
-        cout << "Q:" << query << endl;
-        return 0;
-    }
-
-    res=serv.Query(query);
-    if (!res)
-    {
-        cout << "Error in query " << query << endl;
-        return -1;
-    }
-
-    delete res;
-
-    Int_t key = QueryNameKEY(serv, dummy, col, name, kFALSE);
-    if (key>0)
-    {
-        cout << "New " << col << ": " << name << endl;
-        return key;
-    }
-
-    cout << "ERROR: " << query << endl;
-    return kFALSE;
-}
 
 int insertsequence(TString filename, Bool_t dummy=kTRUE)
@@ -130,5 +63,5 @@
     TEnv sequ(filename);
 
-    MSQLServer serv(env);
+    MSQLMagic serv(env);
     if (!serv.IsConnected())
     {
@@ -136,4 +69,7 @@
         return 0;
     }
+
+    serv.SetIsDummy(dummy);
+
     cout << "insertsequence" << endl;
     cout << "--------------" << endl;
@@ -159,5 +95,5 @@
     //get source key
     TString sourcename = sequ.GetValue("Source", "");
-    Int_t sourcekey = QueryNameKEY(serv, dummy, "Source", sourcename.Data());
+    Int_t sourcekey = serv.QueryNameKEY("Source", sourcename.Data());
 
     //get values for the sequence
@@ -227,5 +163,5 @@
     {
         cout << "new source name: " << sourcename << " -> inserting..." << endl;
-        sourcekey = QueryNameKEY(serv, dummy, "Source", sourcename.Data(), kFALSE);
+        sourcekey = serv.QueryNameKEY("Source", sourcename.Data(), kFALSE);
         source=Form("%d",sourcekey);
     }
@@ -240,46 +176,34 @@
 
     //build queries
-    TString query1="INSERT Sequences SET fManuallyChangedKEY=2, ";
-    query1 +=Form("fSequenceFirst=%d, fSequenceLast=%s, "
-                  "fProjectKEY=%s, fSourceKEY=%s, fNumEvents=%s, "
-                  "fRunStart='%s', fHvSettingsKEY=%s, fRunTime=%s, "
-                  "fTriggerDelayTableKEY=%s, fDiscriminatorThresholdTableKEY=%s, "
-                  "fTestFlagKEY=%s, fLightConditionsKEY=%s, fAzimuthMin=%s, "
-                  "fAzimuthMax=%s, fZenithDistanceMin=%s, fZenithDistanceMax=%s, "
-                  "fL1TriggerTableKEY=%s, fL2TriggerTableKEY=%s ",
-                  seq, lastrun.Data(), project.Data(), source.Data(),
-                  numevts.Data(), starttime.Data(), hv.Data(), uptime.Data(),
-                  delay.Data(), dt.Data(), testflag.Data(), lightcond.Data(),
-                  azmin.Data(), azmax.Data(), zdmin.Data(), zdmax.Data(),
-                  l1tt.Data(), l2tt.Data());
+    TString vals=
+        Form("fManuallyChangedKEY=2, "
+             "fSequenceFirst=%d, fSequenceLast=%s, "
+             "fProjectKEY=%s, fSourceKEY=%s, fNumEvents=%s, "
+             "fRunStart='%s', fHvSettingsKEY=%s, fRunTime=%s, "
+             "fTriggerDelayTableKEY=%s, fDiscriminatorThresholdTableKEY=%s, "
+             "fTestFlagKEY=%s, fLightConditionsKEY=%s, fAzimuthMin=%s, "
+             "fAzimuthMax=%s, fZenithDistanceMin=%s, fZenithDistanceMax=%s, "
+             "fL1TriggerTableKEY=%s, fL2TriggerTableKEY=%s ",
+             seq, lastrun.Data(), project.Data(), source.Data(),
+             numevts.Data(), starttime.Data(), hv.Data(), uptime.Data(),
+             delay.Data(), dt.Data(), testflag.Data(), lightcond.Data(),
+             azmin.Data(), azmax.Data(), zdmin.Data(), zdmax.Data(),
+             l1tt.Data(), l2tt.Data());
+
+    const Int_t rc1 = serv.Insert("Sequences", vals);
+    if (rc1<0)       // dummy
+        return 1;
+    if (rc1==kFALSE) // insert failed
+        return 0;
 
     //the time of the column fSequenceFileWritten is set to 'not to be done'
-    TString query2=Form("INSERT SequenceProcessStatus SET "
-                        "fSequenceFirst=%d, fSequenceFileWritten='1970-01-01 00:00:00'",
-                        seq);
-
-    if (dummy)
-    {
-        cout << "q1: " << query1 << endl;
-        cout << "q2: " << query2 << endl;
+    vals=Form("fSequenceFirst=%d, fSequenceFileWritten='1970-01-01 00:00:00'", seq);
+
+    const Int_t rc2 = serv.Insert("SequencesProcessStatus", vals);
+
+    if (rc2<0)       // dummy
         return 1;
-    }
-
-
-    res = serv.Query(query1);
-    if (!res)
-    {
-        cout << "ERROR: query1 failed: " << query1 << endl;
-        return 0;
-    }
-    delete res;
-
-    res = serv.Query(query2);
-    if (!res)
-    {
-        cout << "ERROR: query2 failed: " << query2 << endl;
-        return 0;
-    }
-    delete res;
+    if (rc2==kFALSE) // insert failed
+        return 0;
 
     return 1;
