Einzelnen Beitrag anzeigen

TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Automatiach erstellte Syntax

  Alt 6. Sep 2017, 08:18
Da sind ein bisschen sehr viel "wahrscheinlich", "offenbar" und "ich glaube" unterwegs. :-/

PRAGMA foreign keys): Bei einem Import gibt es das Problem, dass uU Datensätze importiert, die eine Referenz auf einen Datensatz besitzen, der noch nicht importiert wurde. Wenn diese Referenz als foreign key abgebildet ist, gibt es einen Fehler. Wenn man aber weiß, dass alle Referenzen nach dem Import erfüllt sind, kann man diese foreign keys deaktivieren. Das kann man für einzelne foreign keys machen, einzelne Tabellen oder die ganze Datenbank (=PRGAMA foreign_key OFF). Und dreht es nach dem Import wieder auf.

ATTACH: Wenn man in einer Sitzung auf eine andere Datenbank zugreifen möchte, kann man den Datenbankkontext mit attach neu setzen. Alle nachfolgenden Befehle beziehen sich auf die neue Datenbank. Damit ist es aber NICHT möglich auf beide Datenbanken gleichzeitig zuzugreifen.

ad Commit/Rollback: Einen ganzen Import in eine(!) Transaktion zu packen ist blanker Unsinn. Man macht eine Datensicherung, importiert und im Fehlerfall wiederholt man den Import. Transaktionen sollen so klein und kurz wie möglich sein.

Es gibt in Delphi zwei Möglichkeiten, auf eine Datenbank zuzugreifen:
- ich packe alle SQL Anweisungen in ein Script und lasse das Script ausführen
- ich führe ein SQL Statement nach dem anderen aus
Beides hat so seine Vor- und Nachteile. Im zweiten Fall hast du mehr Kontrolle+kannst in Delphi noch alles Mögliche machen. Du sagst, es geht um Konvertierung, dann ist das eher etwas, das man nur 1x macht. Dann würde ich Variante 2 bevorzugen:
2 Connections öffnen - mySQL + SQLite
- satzweise lesen/konvertieren/schreiben
- Protokoll führen/ausgeben
- schließen
  Mit Zitat antworten Zitat