AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Tabelle öffnen und per SQL ansprechen
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle öffnen und per SQL ansprechen

Ein Thema von Barzy2x · begonnen am 17. Dez 2002 · letzter Beitrag vom 18. Dez 2002
Antwort Antwort
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#1

Tabelle öffnen und per SQL ansprechen

  Alt 17. Dez 2002, 18:42
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...
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#2
  Alt 17. Dez 2002, 18:52
Hallo Barzy

Ganz einfach:
Code:
select *
from "d:\b\Borland Shared\data\parts.db"
das ist schon alles.

Gruss
Xaver
  Mit Zitat antworten Zitat
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#3
  Alt 17. Dez 2002, 19:13
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?
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 17. Dez 2002, 19:20
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
  Mit Zitat antworten Zitat
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#5
  Alt 17. Dez 2002, 21:07
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:
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;
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?
  Mit Zitat antworten Zitat
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#6
  Alt 18. Dez 2002, 11:45
Problem hat sich erledigt...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 Uhr.
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