Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Leere Vorgabedatenbank

  Alt 3. Mai 2017, 14:04
Ich nehme das Freeware-Tool meines Vertrauens "SQLite Expert" und lege damit meine gewünschte Struktur an. Zeitgleich kann er mir ein Buildscript daraus generieren, also wie man diese Tabellen und Regeln per SQL anlegen würde. Das kann aber sicherlich jedes andere Tool auch.

Wenn beim Programmstart die Datenbank nicht existiert nimmt das Programm dieses hinterlegte Skript und führt es aus. Dann habe ich meine erwartete Tabellenstruktur und bin fertig. Optional könnte dieses Buildskript schon Beispieldaten enthalten wenn man z.B. einen Demo-Modus haben möchte...


Praktisch habe ich eine Variable mustRunBuildScript die im OnBeforeConnect-Event der Verbindung auf True gesetzt wird wenn die Datenbank nicht existiert. Im OnAfterConnect-Event wird dann, wenn die Variable true ist, das Buildscript über TFDConnection.ExecSQL(..) ausgeführt.

Delphi-Quellcode:
procedure TStorageModuleSqlite.runBuildScript();
const
   fileName = 'buildscript_sqlite.sql';
var
   filePath: String;
begin
   filePath := TPath.Combine('...', fileName);
   connection.ExecSQL( TFile.ReadAllText(filePath) );
   mustRunBuildScript := False;
end;
Abgesehen davon, daß ich das gut finde, prüfst du auch ob die Datenbank, die du findest, falls eine vorhanden sein sollte, auch die richtige ist?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat