Hi zusammen
@jaenicke
Zitat:
The ATTACH DATABASE statement adds another database file to the current database connection.
Sag ich doch...
Was also macht dieses ATACH an dieser Stelle? Ist das hier gedacht, um die originale
MySQL-
DB und die eportierte SQLite-
DB in einer Verbindung zu öffnen?
Da ich das nicht beabsichtige, brauche ichs auch nicht.
@jobo:
Zitat:
pragma foreign keys off
dient wahrscheinlich dem "entspannten" Import von Daten ohne fortwährende Berücksichtigung der foreign keys.
Nein. Ein mit Google Translation übersetztes Schnipsel aus den
FAQs:
Zitat:
(22) Unterstützt SQLite Fremdschlüssel?
Ab Version 3.6.19 (2009-10-14) unterstützt SQLite Fremdschlüssel-Einschränkungen. Die Durchsetzung von Fremdschlüssel-Einschränkungen wird standardmäßig deaktiviert (für Rückwärtskompatibilität). Um die Fremdschlüssel-Zwangsvollstreckung zu aktivieren, führen Sie PRAGMA foreign_keys = ON aus oder kompilieren mit -DSQLITE_DEFAULT_FOREIGN_KEYS = 1.
Zitat:
Begin End oder Begin Commit macht aus dem ganzen eine Transaktion.
Also
MySQL-intern?
Zitat:
Wenn Du beabsichtigst, einzelne Schritte in (Delphi) Funktionen zu zerlegen, macht es vielleicht nur bedingt Sinn.
Meine Strategie wäre eher Alles oder Nichts, also Ausstieg bei Fehler und alle Änderungen verschwinden automatisch.
Bei einer Initalen
DB Erzeugung käme das dem Wegwerfen der sqLite Datei gleich. Wäre auch okay.
Die Frage ist hier wohl, wann das ExecSql ausgeführt wird. Von mir vorgesehen ist das ExecSql eigentlich erst ganz am Schluss auszuführen.
Zitat:
Grundsätzlich auch das kein grosses Problem - ich denke, ich packe die einzelnen Createtable-Konstrukte in jeweils eine Funktion und packe sie dann folgendermassen in meine
DB-Createprozedur:
markieren
Delphi-Quellcode:
Delphi-Quellcode:
SQLSring:= Funktion1;
SQLSring:= Funktion2;
Diese Beispielsyntax wäre also eher:
Delphi-Quellcode:
SQLSring.Add:= Funktion1;
SQLSring.Add:= Funktion2;
Wenn ich die einzelnen Create Table-Konstrukte in jeweils eigene Funktionen packe, dient das lediglich meiner besseren Übersicht, abgesehen davon, dass die komplette
SQL-Syntax in eine eigene Klasse/
Unit ausgelagert werden könnte.
Zitat:
Im Fehlerfall wird alles(!) auf den alten Stand zurückgesetzt > Rollback statt Commit.
Das ist zwingend.
Gruss
Delbor