Verschränken von DB-Abfragen

 

Hallo liebe Community,


ich habe eine SQLITE-Datenbank in der ich Success-Scores meiner Strategien pflege. Diese rufe ich aktuell wie folgt auf:

int request_ao =DatabasePrepare(db, "Select quote_ao from strategies where id_waehrung = "+id+"");

               for(int i_ao=0; DatabaseRead(request_ao); i_ao++)

                  {

                  DatabaseColumnDouble(request_ao, 0, quote_ao);

                  Alert("Wir haben für den AO den Wert: "+ DoubleToString(quote_ao) + " gefunden");

                  }


Das funktioniert soweit auch ganz prächtig, allerdings ist es sehr viel Code für eigentlich nur einen einzelnen Wert den ich möchte. Und wenn ich nun noch ein error-Handling hinzufügen würde (ist im Plan) würde es ja noch mehr. 


Ich dachte daher daran, den Code zu verschränken und habe folgendes Konstrukt gebaut:

               DatabaseColumnDouble(DatabaseRead(DatabasePrepare(db, "Select quote_ao from strategies  where id_waehrung = "+id+"")), 0, quote_ao);

               Alert("NEU***Wir haben für den AO den Wert: "+ DoubleToString(quote_ao) + " gefunden");


Ich dachte ich könnte so die gleichen zustände herstellen, bekommt allerdings nur 0-Werte zurück.


Leider gibt es in den gängigen Anleitungen zu solchen verschachtelungen keine guten hinweise. 


Hat jemand von euch Erfahrung oder einen Tipp, wie ich meinen Code ein wenig schlanker bekomme (nicht schneller, nur etwas weniger komplex im Editor ;) ) 


Danke und viele Grüße

Sebastian

 

Warum der Umstand?

MQL5 'kann' jetzt Hashes: https://www.mql5.com/de/docs/standardlibrary/generic/chashmap/chashmapadd oder hier: https://www.mql5.com/en/code/7047

So können Textschlüssel mit numerischen Werten verknüpft, gespeichert, verglichen, abgerufen und gelöscht werden - ohne alles erst in eine Textzeile zu verwandeln, die weg zuschicken und dann eine Textzeile wieder zu erhalten, die auseinandergenommen werden muss.

Dokumentation zu MQL5: Standardbibliothek / Template-Sammlungen von Daten / CHashMap / Add
Dokumentation zu MQL5: Standardbibliothek / Template-Sammlungen von Daten / CHashMap / Add
  • www.mql5.com
Add(CKeyValuePair *) - CHashMap - Template-Sammlungen von Daten - Standardbibliothek - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
Grund der Beschwerde: