Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Abfrage mit zwei Datenbanken ? (https://www.delphipraxis.net/185695-abfrage-mit-zwei-datenbanken.html)

DanXe 30. Jun 2015 06:57

Datenbank: SQLite • Version: 3 • Zugriff über: dbExpress

Abfrage mit zwei Datenbanken ?
 
Hallo zusammen -)

Folgendes Problem:

Ich habe zwei getrennte Datenbanken-Dateien.
Ich versuche, die beide Dateien (Verbindung über SQLConnection) anzusprechen. Ich muss auf beide Datenbanken
gleichzeitig zugreifen können:

Dafür gibt es die Methode ATTACH DATABASE: https://www.sqlite.org/lang_attach.html.
http://www.tutorialspoint.com/sqlite...h_database.htm
Delphi-Quellcode:
procedure TmyForm.connect(Sender: TObject);
begin
  try
     SQLConnection.connected:= False;
     SQLConnection.Clear;
     SQLConnection.Params.Add('ATTACH Databas 'C:\Users\Data\DatabaseName.db' AS X1');
     SQLConnection.Params.Add('ATTACH Databas 'C:\Users\Data\DatabaseName2.db' AS Y1');
     SQLConnection.Connected:= True;
     ...
    end;
end;
Meine Abfragen sehen dann so aus:

Delphi-Quellcode:
command:= 'Select ID From X1.mytable1'
command:= 'Select Nr From Y1.mytable6'
was mache ich falsch?

Vielen Dank für eure Hilfe

Sir Rufo 30. Jun 2015 07:07

AW: Abfrage mit zwei Datenbanken ?
 
Falsch ist schon mal das du uns nicht sagst was denn nun passiert.

Gibt es eine Fehlermeldung? Wie lautet die? ...

jobo 30. Jun 2015 07:17

AW: Abfrage mit zwei Datenbanken ?
 
Du hast nicht geschrieben, was überhaupt das Problem ist.
Das ist eigentlich so üblich in Foren, Fehlernummer, Fehlertext usw.
Aber ich vermute mal, dass der Pfad in der Attach Anweisung nicht richtig gequotet ist.
Probier mal quotedStr, um den Dateiname selbst in Hochkomma zu setzen und das konkatenierst Du dann mit + Zeichen in die Anweisung.
Aber vielleicht ist auch was ganz anderes falsch bei diesem Ratespiel und ich hätte besser den Telefonjoker genommen.
;)

BUG 30. Jun 2015 07:25

AW: Abfrage mit zwei Datenbanken ?
 
Außerdem solltest du dir noch jeweils ein E kaufen :stupid:

DanXe 30. Jun 2015 09:46

AW: Abfrage mit zwei Datenbanken ?
 
Sorry..

Zitat:

Gibt es eine Fehlermeldung? Wie lautet die?
Ja..: no such table X1.mytable1
no such table Y1.mytable6

BUG 30. Jun 2015 09:55

AW: Abfrage mit zwei Datenbanken ?
 
An deiner Stelle würde ich erst einmal per Hand versuchen, das mit dem sqlite3-Kommandozeilentool zu testen und es erst dann mit Delphi umzusetzen, wenn es da funktioniert. Damit bekommst du das Feedback schneller und kannst besser "Debuggen".

Zitat:

Zitat von DanXe (Beitrag 1307156)
No such table X1.mytable1 (erste Datei)
Oder no such table Y1.mytable6 (zweite Datei)

Da du die Datenbanken anscheinend frisch erzeugst: Hast du die Tabellen denn auch erstellt?

DanXe 30. Jun 2015 10:48

AW: Abfrage mit zwei Datenbanken ?
 
Zitat:

Da du die Datenbanken anscheinend frisch erzeugst: hast du die Tabellen denn auch erstellt?
Die Dateien und Tabellen habe ich schon erstellt (mit Daten gefüllt).

ich muss auf die beide Datenbanken gleichzeitig zugreifen. Deswegen habe ich ATTACH-Anweisung verwendet. Aber irgendwas mache ich falsch.. (Syntax..)

rapante 30. Jun 2015 11:11

AW: Abfrage mit zwei Datenbanken ?
 
Zitat:

Zitat von DanXe (Beitrag 1307179)
Deswegen habe ich ATTACH-Anweisung verwendet. Aber irgendwas mache ich falsch.. (Syntax..)

Hier ein Auszug aus dem von dir geposteten Link zu "ATTACH database"

"SQLite ATTACH DTABASE statement is used to select a particular database, and after this command, all SQLite statements will be executed under the attached database."

Edit -> hier stand Blödsinn ;)

jobo 30. Jun 2015 13:33

AW: Abfrage mit zwei Datenbanken ?
 
Hm, also ich meine, dass die Commands immer gegen "beide" laufen, erst wenn Tabellennamen mehrdeutig sind, müsste man sich präzisieren, sonst wird per default die zuletzt verwendete genommen.
Außerdem:
Wenn ich im Normalbetrieb 1 DB nutze und manchmal auf 2 gleichzeitig zugreifen muss, brauch ich doch nicht 2 zu attachen oder? Ich bin doch eh mit der StandardDB verbunden.

HolgerX 30. Jun 2015 14:02

AW: Abfrage mit zwei Datenbanken ?
 
Hallo,

habe zwar keine Ahnung von SQLite aber schau mal hier:

http://stackoverflow.com/questions/6...rent-databases

Da wird einmal

attach database database1.db as db1;
attach database database2.db as db2;

und ein Anderer schrieb

attach 'database1.db' as db1;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz