Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TQuery variabel (https://www.delphipraxis.net/146202-tquery-variabel.html)

fl63 19. Jan 2010 10:57

Re: TQuery variabel
 
Zitat:

Zitat von Jens Hartmann
Zitat:

Zitat von fl63
Tabellenname allein macht die Sache doch nicht variabel. Ich stelle mir die Sache mit einer FilelistBox oder einem OpenDialog vor. Ich habs auch damit ausprobiert nur zeigen die Ergebnisse keine Wirkung.

Was hast Du denn bislang im Bezug auf die FileListBox oder das OpenDialog ausprobiert.

Gruß Jens



Ursprünglich hatte ich es mir so gedacht:

Eine Datasource, eine Table1, eine DBCombobox auf das Formular gelegt.
DataSource mit Table1 verknüpft,
ComboBox mit Datasource verknüpft,
Table1 mit Database = C\DB verknüpft und kompiliert.

Ergebnis keine TabellenNamen in DBCombobox
Die Verknüpfung Combobox.Text mit SQL.Add ... from ...
habe ich mir gleich gespart.

Daraufhin OpenDialog1 ausprobiert
Delphi-Quellcode:
If OpenDialog.Filename = '' then Tabellenname := gesamt3
Tabellenname:= OpenDialog.Filename
...
Ergebnis genauso niederschmetternd da FileName den ganzen Pfad mitliefert.

fl63 19. Jan 2010 13:58

Re: TQuery variabel
 
Schade das mir hier bis jetzt keiner weiterhelfen kann.

hoika 19. Jan 2010 14:03

Re: TQuery variabel
 
Hallo,

Zitat:

Ergebnis genauso niederschmetternd da FileName den ganzen Pfad mitliefert.
Und ?

ExtractFileName -> Tabellen-Name
ExtractFilePath -> "DataBase"-Name


Heiko

Jens Hartmann 19. Jan 2010 16:48

Re: TQuery variabel
 
Jetzt muss ich aber nochmal nachfragen.

Du möchtest über die ListBox oder das OpenDialog die entsprechende Tabelle aussuchen. Oder habe ich da jetzt was falsch verstanden.

Weil das kann ja eigendlich gar nicht gehen. Die Tabelle selber befindet sich ja in einer Datenbank. Wenn Du es so machen wolltest, ginge das ja nur, wenn jede Datenbank nur eine Tabelle enthalten würde, und diese auch noch den Namen der Tabelle hat.

Wäre aber irgendwie unlogisch, weil dann müsstets Du ja auch mit dem kompletten FileName zurechtkommen. Dann darfst Du den nur nicht für den Tabellennamen verwenden, sondern für die Verbindung zur Datenbank, also in der Connection einbauen.

Also schlagt mich, aber so versteh ich deine Gedanken. :roll:

Gruß Jens

hoika 19. Jan 2010 17:49

Re: TQuery variabel
 
Hallo,

*schlag* *stech* *würg*

Du hast es so gewollt ;)

Wir reden von Paradox.

Eine "Datenbank" ist dort ein Verzeicbnis.
Eine "Tabelle" halt eine DB-Datei in diesem Verzeichnis
(incl. der Zusatzdazteien, Indizes usw.).


Heiko

khh 19. Jan 2010 18:44

Re: TQuery variabel
 
Zitat:

Zitat von hoika
Hallo,

*schlag* *stech* *würg*

Du hast es so gewollt ;)

Wir reden von Paradox.

das muss aber nicht sein, oder ?

Gruss Kh

Jens Hartmann 19. Jan 2010 18:54

Re: TQuery variabel
 
Zitat:

Zitat von hoika
*schlag* *stech* *würg*

:wall:
Aua, tut schon weh, aber mehr meine eigene Do..heit.
Zitat:

Zitat von hoika
Eine "Datenbank" ist dort ein Verzeicbnis.
Eine "Tabelle" halt eine DB-Datei in diesem Verzeichnis
(incl. der Zusatzdazteien, Indizes usw.).

Sorry, ist dann schon klar. Aber dann müsste es mit dem FileName ja eigendlich funktionieren...

Code:
ExtractFileName := Tabellen-Name
ExtractFilePath := "DataBase"-Name
Habe das gerade mal ausprobiert. So müsste es funktionieren
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Tabellenname : String;
  Datenbankverzeichnis : String;
begin
  if OpenDialog1.Execute then
    begin
      if OpenDialog1.Filename = '' then
        Tabellenname := 'gesamt3'
      else
        begin
          Datenbankverzeichnis := ExtractFilePath(OpenDialog1.FileName);
          Tabellenname := ExtractFileName(OpenDialog1.FileName);
        end;
    end;
    ShowMessage(Tabellenname);
    ShowMessage(Datenbankverzeichnis);
end;
Gruß Jens

fl63 20. Jan 2010 16:32

Re: TQuery variabel
 
Zitat:

Zitat von hoika
Hallo,

*schlag* *stech* *würg*

Du hast es so gewollt ;)

Wir reden von Paradox.

Eine "Datenbank" ist dort ein Verzeicbnis.
Eine "Tabelle" halt eine DB-Datei in diesem Verzeichnis
(incl. der Zusatzdazteien, Indizes usw.).


Heiko


Völlig richtig. Wir sind bei Paradox. Warum nicht?


Zitat:

Zitat von Jens Hartmann
Jetzt muss ich aber nochmal nachfragen.

Du möchtest über die ListBox oder das OpenDialog die entsprechende Tabelle aussuchen. Oder habe ich da jetzt was falsch verstanden.


Gruß Jens


Ursprünglich wollte ich über DBListbox die einzelnen Tabellen auswählen. Dafür bin ich vermutlich zu do... , da der oben beschriebene Weg nicht funktioniert.
Also mußte ich mir einen anderen Weg (mit OpenDialog) überlegen.

Jens Hartmann 20. Jan 2010 17:26

Re: TQuery variabel
 
Warum funktioniert das oben nicht. Ich habe es probiert. Und Du bekommst genau die Daten die du willst. Für deinen Fall benötigst Du...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Tabellenname : String;
begin
  if OpenDialog1.Execute then
    begin
      if OpenDialog1.Filename = '' then
        Tabellenname := 'gesamt3'
      else
        Tabellenname := ExtractFileName(OpenDialog1.FileName);
      end;
    end;
    ShowMessage(Tabellenname);
end;
und in deinem SQL.Text müsste das dann so aussehen...
Delphi-Quellcode:
    SQL.Text :='Select * from '+Tabellenname+' where Upper (feld001) Like Upper (:feld1.text)';
also...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Tabellenname : String;
begin
  if OpenDialog1.Execute then
    begin
      if OpenDialog1.Filename = '' then
        Tabellenname := 'gesamt3'
      else
        Tabellenname := ExtractFileName(OpenDialog1.FileName);
      end;
    end;
    SQL.Text :='Select * from '+Tabellenname+' where Upper (feld001) Like Upper (:feld1.text)';
end;
Gruß Jens

fl63 21. Jan 2010 10:11

Re: TQuery variabel
 
Zitat:

Zitat von Jens Hartmann
Warum funktioniert das oben nicht.


Das hat doch niemand behauptet,daß es mit OpenDialog nicht geht.

Meine präferierte Möglichkeit mit der DBListbox funktioniert nicht.

Dennoch vielen Dank für die Lösung meiner zweiten Möglichkeit (OpenDialog).

Gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.
Seite 5 von 6   « Erste     345 6      

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