![]() |
Tabelle öffnen und per SQL ansprechen
Hallo,
über TOpenDialog öffne ich eine DB Datei. Diese Datei möchte ich nun mit SQL ansprechen (z.b SELECT IRGENDWAS FROM Tabelle_die_ich_über_TOpenDialog_geöffnet_habe). Mein Problem liegt nun darin, dass ich nicht weiß wie ich SQL vermittle, dass er diese ausgesuchte Tabelle abfragen soll. Habe versucht die geöffnente DB Datei einer TTable Variable zuzuweisen und diese dann über SQL anzusprechen. Funktioniert aber nicht da SQL meldet, dass er die Tabelle "Variable.db" nicht findet. Wie kann ich also die geöffnete Tabelle in eine SQL Abfrage einbinden? Danke im vorraus... |
Hallo Barzy
Ganz einfach:
Code:
das ist schon alles.
select *
from "d:\b\Borland Shared\data\parts.db" Gruss Xaver |
Das könnte ich natürlich auch verwenden. Ich muss jedoch diese Tabelle vorher öffnen, da ich sie auch für eine andere Table Komponente benötige. Würde ich nur SELECT ... FROM 'D:\...' schreiben, kann ich nur mit einer Tabelle arbeiten und kann sie nicht vorher öffnen. Wenn die geöffnete Tabelle nun auf e: ist und ich d:\... anspreche funktioniert das nicht. Gibt es dafür auch eine andere Lösung?
|
Ja die gibt es. Setze einfach die Komponente TDatabase ein. Dort gibst Du im Property DatabaseName den Directory-Paht ein z.B. D:\Data
Nun kannst Du jedes TQuery-Object über das Property DatabaseName an das Database-Objekt anhängen. Alle Tabellen sind so verfügbar, welche sich in dem Directory sind. Eine Tabelle kann so mehrmals geöffnet werden, indem Du einfach den Pfad nach FROM weglässt und nur den Tabellen-Name z.B. FROM "Test.db" angibst öffnen. Gruss Xaver |
Danke Xaver, das funktioniert. Dennoch bleibt das Problem mit dem Öffnen der datenbanken. Wenn ich in meine SQL Anweisung schreibe "SELECT ... FROM Test" dann greift SQL nur auf diese Test.db zu. Wenn ich nun aber z.b Test1.db geöffnet habe, dann spricht SQL diese natürlich nicht an, da in der Anweisung "...From Test" steht. Also brauche ich in der Anweisung eine Variable die sich merkt welche Datenbank ich geöffnet habe. Zum öffnen der Datenbank nutze ich folgenden Code:
Code:
Also "befindet" ich die geöffnete DB datei in "Edit1.Text". Das müsste die SQL Anweisung merken und so auf die richtig Datenbank zugreifen. Ist das Einfügen einer Variable in eine SQL Anweisung möglich?
PROCEDURE TDatenbankoeffnen.BtnODClick(Sender: TObject);
VAR OD : TOpenDialog; BEGIN OD := TopenDialog.Create(self); OD.InitialDir := 'C:\'; OD.Filter := 'Datenbankdateien |*.DB'; IF OD.Execute THEN TRY Edit1.Text := od.FileName; EXCEPT Application.MessageBox(Pchar('Die Datei konnte nicht geöffnet werden'),'Fehler',0); END; END; |
Problem hat sich erledigt...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz