Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Automatiach erstellte Syntax

  Alt 8. Sep 2017, 10:26
Hi zusammen

Nach längerm Suchen (inklusive überlesen...) hab ich da was interessantes gefunden:
Zitat:
Verwenden von mehreren SQLite-Datenbanken in einer Delphi-Anwendung

SQLite ermöglicht die Verwendung mehrerer Datenbanken in einer einzelnen Verbindung. Eine im Parameter Database angegebene DB ist die Hauptdatenbank. Um weitere Datenbanken hinzuzufügen, muss in der Delphi-Anwendung die ATTACH-Anweisung verwendet werden. Zum Beispiel:

Delphi-Quellcode:
 FDConnection1.ExecSQL('ATTACH ''c:\hr.sdb'' AS hr');
 FDConnection1.ExecSQL('ATTACH ''c:\cust.sdb'' AS cust');
 FDQuery1.Open('select * from "Orders" o ' +
   'left join hr."Employees" e on o.EmployeeID = e.EmployeeID ' +
   'left join cust."Customers" c on o.CustomerID = c.CustomerID');
Mit der von mir immer wieder erwähnten Connection-Komponente hab ich die Eingangs gezeigte DB erstellt. Laut diesem Artikel ist dies somit die 'Hauptdatenbank' in dieser Verbindunng. Alle weiteren Datenbanken müssen nun also mit ATTACH der Verbindung hinzugefügt werden.
Dies hatte ich ja erstmal so versucht:

DMLSQLite.FDSQLiteConnection.Params.Add('ATTACH "ContentMasterData.sdb" AS "ContentMasterData";');

Tigerlilly meinte dazu:
Zitat:
DMLSQLite.FDSQLiteConnection.Params nimmt NUR angaben zur Verbindung zur Datenbank auf. Ein Attach hat da nichts verloren.
Im Screenshot ist eine Datenbank mit .db angegeben, im Code .sqlite. Ist das ein Typo?
Hmm, Tigerlilly, in welchem Screenshot? Die eingeschwärzten Bildschirmschüsse zeigen ewinen Ausschnitt meiner Programmoberfläche. Das kann ein Tippfehler sein, ist aber wohl eher ein C&P-Fehler.

Gemäss dem oben gezeigten Codeschnipselfund werde ich jetzt erstmal zusehen, dass ich die ATTACH-Anweisung richtig hinkrieg.

Zitat von Jobo:
Zitat:
Ich schätze das Problem hier ist:
Das verwendete Tool generiert ein Script, Delphi SQL Componenten arbeiten aber meist Statement basiert.
Was ist denn der Unterschied zwischen einem Script und einem SQL-Statement? Nach meiner Interpretation erstmal wohl keiner; beide sind reiner Asccii-Text und werden interpretiert.
Wobei ein VB-Interpreter mit Select wohl erst mal nicht viel anfangen kann, eine SQL-Engine hingegen mit Dim hingegen genauso überfordert ist. Wobei der VB-Interpreter ein Select-Statement als String entgegennehmen und ihn an die SQL-Engine weiterreichen kann.

So, wie ich das sehe, enthält dieses Script nichts weiter als ein mehr oder weniger komplexes SQL-Statement, um damit mit der SQLite-Engine (SQLite3.dll) eine SQLite-DB zu erstellen.

Im Anhang zeigt ein jpeg die auf meinem System gefundenen sqlite.exe-Dateien, wobei mindestens eine davon eine Installationsdatei ist.


Gruss
Delbor
Miniaturansicht angehängter Grafiken
sqlite-exe-suche.jpg  
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat