Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL5 (http://www.expert-advisor.com/forum/forumdisplay.php?f=221)
-   -   Datenbank Sql Lite neuen Eintrag am ende eintragen (http://www.expert-advisor.com/forum/showthread.php?t=7017)

Aleksi 05.06.21 17:41

Datenbank Sql Lite neuen Eintrag am ende eintragen
 
Hallo, mal ganz allgemein gefragt: wie ist es möglich das Ende einer Datenbank zu finden und dann nur noch dort ein weiteren Datensatz dran zu hängen?

Bei Dateien ist das ja wirklich keine Kunst.

Ist das bei Datenbanken überhaupt möglich oder kann ich das dann nur via DatabaseImport() über ne CSV ermöglichen?

Gruß Aleksi

RetepM 06.06.21 14:49

Hi, so richtig verstehe ich die Frage nicht! Was meinst du mit am Ende der Datei? Mit INSERT kannst du Daten zu einer SQLITE Tabelle hinzufügen. Schau dir die Beispiele unter https://www.mql5.com/en/docs/database/databaseexecute an. Unter MQL5 habe ich das noch nicht gemacht, für SQL ist das aber prinzipiell eine leichte Übung…
Grüße

Aleksi 06.06.21 18:02

Zitat:

Zitat von RetepM (Beitrag 45464)
Hi, so richtig verstehe ich die Frage nicht! Was meinst du mit am Ende der Datei?
Grüße

Bin bisher das arbeiten mit Dateien gewohnt, dort kann man das Ende der Datei suchen und eine neue Zeile schreiben ohne die gesammte Datei zu überschreiben.
Code:


FileWrite(Filehandle, "High","Low");//Kopfzeile damit man weis was drunter steht
// Erweitert die Datei jeweils um ein Eintrag
FileSeek(Filehandle,0,SEEK_END);
FileWrite(Filehandle,iHigh(_Symbol,PERIOD_CURRENT,0),iLow(_Symbol,PERIOD_CURRENT,0))

In mein Beispiel hatte ich neue Preisdaten gespeichert jeweils High und Low
am Ende war es eine saubere Auflistung jedes Preises.

Das arbeiten mit Datenbanken scheint mir sehr ähnlich zu sein, daher wäre meine Frage ob man bei Datenbanken das genauso bzw ähnlich machen kann oder ob diese immer wieder komplett neu geschrieben werden.

RetepM 06.06.21 18:36

Ok, verstanden. Datenbanken funktionieren etwas anders als reine Textdateien. In SQLITE Dateien sind ja auch noch andere Sachen, wie z.B. Indices, Feldbeschreibungen untergebracht. Um also Ordnung in die verschiedenen Werte zu bekommen, musst du vor einer Anzeige oder einem Ausdruck, die dich interessieren Werte suchen, sortieren und anzeigen. Das geht alles rasend schnell, erfordert aber ein paar Zeilen Code mehr...
Nein, man muss nicht immer alle Daten wieder neu schreiben. Ich habe allerdings meine Zweifel, ob es Sinn macht, z.B. jede Minute Werte in eine Text-Datei oder eine Datenbank zu schreiben. Je nach Anzahl der Daten ist das eine Performance-Frage. Datenbanken haben den Vorteil, dass du deine Daten über jedes angelegte Feld analysieren kannst. Da ich mich z.Z. nicht mit MT5 beschäftige, kann ich dir leider nicht konkreter weiterhelfen.

Aleksi 06.06.21 19:54

Supi, danke dir, das mit den Preisen war jetzt nur eine Übung bzw Beispiel um zu verdeutlichen was ich meine. Meine Datenbank is ja so halbwegs fertig und wartet eigentlich nur drauf "gefüttert zu werden" allerding wenn ich Insert nutze und ein neuer Wert kommt, wird der vorhandene Eintrag überschrieben was ja nicht sein soll.

RetepM 07.06.21 09:03

Dann ist dein INSERT-Befehl nicht korrekt, kontrolliere das mal mit einem anderen Tool.

Aleksi 07.06.21 13:00

Ah.... hab die Lösung. Einmal die for schleife und das andere Problem war tatsächlich noch in der insert.Jetzt kann ich endlich meine Trades loggen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum