Index: trunk/FACT++/src/makeschedule.cc
===================================================================
--- trunk/FACT++/src/makeschedule.cc	(revision 18436)
+++ trunk/FACT++/src/makeschedule.cc	(revision 18437)
@@ -116,4 +116,5 @@
     // Source descrition
     string name;
+    uint16_t key;
     EquPosn equ;
 
@@ -135,5 +136,5 @@
     vector<string> preobs;
 
-    Source(const string &n="") : name(n), begin(0), threshold(std::numeric_limits<double>::max()) { }
+    Source(const string &n="", uint16_t k=-1) : name(n), key(k), begin(0), threshold(std::numeric_limits<double>::max()) { }
 
     //bool IsSpecial() const { return threshold==std::numeric_limits<double>::max(); }
@@ -456,14 +457,7 @@
     }
 
-    const mysqlpp::StoreQueryResult res1 = db.query("SELECT fSourceName, fSourceKEY FROM Source").store();
-
-    map<string, uint32_t> keys;
+    const mysqlpp::StoreQueryResult res1 = db.query("SELECT fMeasurementTypeName, fMeasurementTypeKEY FROM MeasurementType").store();
+    map<string, uint32_t> types;
     for (const auto &row: res1)
-        keys.emplace(string(row[0]), uint32_t(row[1]));
-
-    const mysqlpp::StoreQueryResult res2 = db.query("SELECT fMeasurementTypeName, fMeasurementTypeKEY FROM MeasurementType").store();
-
-    map<string, uint32_t> types;
-    for (const auto &row: res2)
         types.emplace(string(row[0]), uint32_t(row[1]));
 
@@ -487,5 +481,5 @@
 
         if (src.name!="SLEEP")
-            str << "('" << tm << "', auto, 0, " << types["Data"] << ", " << keys[src.name] << "), [Data: " << src.name << "]\n";
+            str << "('" << tm << "', auto, 0, " << types["Data"] << ", " << src.key << "), [Data: " << src.name << "]\n";
         else
             str << "('" << tm << "', auto, 0, " << types["Sleep"] << ", NULL), [Sleep]\n";
@@ -568,5 +562,5 @@
     cout << "Nsources = " << sourcenames.size() << "\n";
 
-    string query = "SELECT fSourceName, fRightAscension, fDeclination FROM Source WHERE fSourceTypeKEY=1";
+    string query = "SELECT fSourceName, fSourceKEY, fRightAscension, fDeclination FROM Source WHERE fSourceTypeKEY=1";
     if (sourcenames.size()>0)
         query += " AND fSourceName IN ('" + boost::algorithm::join(sourcenames, "', '")+"')";
@@ -583,8 +577,8 @@
         const string name = string(row[0]);
 
-        Source src(name);
-
-        src.equ.ra  = double(row[1])*15;
-        src.equ.dec = double(row[2]);
+        Source src(name, row[1]);
+
+        src.equ.ra  = double(row[2])*15;
+        src.equ.dec = double(row[3]);
 
         src.maxzd = MyDouble(conf, "setup."+name+".max-zd");
