![]() |
Re: TQuery variabel
Hallo,
es gibt noch einen anderen Weg. TDataBase.GetTablesNames Die Tabellen würde ich dann in einer normale ListBox/ListView packen. Heiko |
Re: TQuery variabel
Zitat:
Das war DER TIP !! Anbei die Lösung:
Delphi-Quellcode:
Vielen Dank an alle die mitgeholfen haben.
procedure TForm1.AbfrageClick(Sender: TObject);
Var SQLString1,SQLString2: String; begin If Edit1.Text = '' then Edit1.Text := '..'; If Edit2.Text = '' then Edit2.Text := '..'; SQLString1:= StringReplace(Edit1.Text,'#','_',[rfReplaceAll]); SQLString1:= StringReplace(SQLString1,'..','%',[rfReplaceAll]); SQLString2:= StringReplace(Edit2.Text,'#','_',[rfReplaceAll]); SQLString2:= StringReplace(SQLString2,'..','%',[rfReplaceAll]); with Query1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from '+ ComboBox1.Text +' where Upper (feld001) Like Upper (:feld1.text) '); SQL.Add('And Upper (feld002) Like Upper (:feld2.text) '); ParamByName('feld1.text').asString := SQLString1; ParamByName('feld2.text').asString := SQLString2; Active:=True; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Database1.GetTableNames(ComboBox1.Items,false); end; |
Re: TQuery variabel
Hallo DPler
erneut eine Frage zum Thema TQuery variabel.
Delphi-Quellcode:
Das ist das bisherige Ergebnis. Jetzt ist die Frage wie bekomme ich (Feld001) variabel.
SQL.Add('Select * from '+ ComboBox1.Text +' where Upper (feld001) Like Upper (:feld1.text) ');
SQL.Add('And Upper (feld002) Like Upper (:feld2.text) '); Andere Tabellen haben den FeldNamen zB. Name oder Adresse. Solche Tabellen bekomme ich nicht mit obengenannter Abfrage abgefragt. Also muß ich den Feldnamen aus der jeweiligen Tabelle auslesen und als Variable statt (Feld001) angeben. Wie mache ich das. |
Re: TQuery variabel
Tabellen ermitteln -> GetTableNames
Felder ermitteln -> GetFieldNames Kann man drauf kommen, oder? ;) |
Re: TQuery variabel
Delphi-Quellcode:
dieses bezeichnet die abzufragende Tabelle.
SQL.Add('Select * from '+ ComboBox1.Text +' where Upper (feld0....
Delphi-Quellcode:
ComboBox1.Text.RecordCount ist natürlich Unfug. Aber es verdeutlicht das Problem.
Statusbar1.Panels[0].Text := IntToStr(ComboBox1.Text.RecordCount);
Ich habe es versucht mit Table1.Tablename := ComboBox1.text und Table1.Recordcount. Das ist alles fehlgeschlagen. Wie kann ich mir noch helfen? |
Re: TQuery variabel
Hallo,
also ich habe die Frage nicht begriffen ... Am besten stellst du sie in einem eigenen Thread mal allgemeiner. Heiko |
Re: TQuery variabel
Im Quelltext (Beitrag 52 siehe oben) steht:
Delphi-Quellcode:
wobei Combobox1.Text den Tabellennamen der abzufragenden Tabelle anzeigt.
SQL.Add('Select * from '+ ComboBox1.Text +' where Upper (feld001) Like Upper (:feld1.text) ');
SQL.Add('And Upper (feld002) Like Upper (:feld2.text) '); Wie kann ich RecordCount-1 also den Die Gesamtzahl der Datensätze der Tabelle in einem eigenen StatusPanel anzeigen also ungefähr:
Delphi-Quellcode:
oder gibt es für diesen Zweck einen eigenen SQL Befehl?
Statusbar1.Panels[0].Text := IntToStr(ComboBox1.Text.RecordCount-1);
Frank |
Re: TQuery variabel
Jetzt hab ich eine Lösung mit Count aus SQL Sprache
Delphi-Quellcode:
Das StatusbarPanel zeigt " 2 " statt 100000 Datensätze an. Woran liegt das?
If Combobox1.Text = '' then Combobox1.Text := 'gesamt3';
with Query1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from '+ ComboBox1.Text +' where Upper (feld001) Like Upper (:feld1.text) '); SQL.Add('And Upper (feld002) Like Upper (:feld2.text) '); ParamByName('feld1.text').asString := SQLString1; ParamByName('feld2.text').asString := SQLString2; Active:=True; end; StatusBar1.Panels[0].Text:= IntToStr(Query1.SQL.Add('Select CountAll(feld001)from' + ComboBox1.text+' ')); end; |
Re: TQuery variabel
Zitat:
Was erwartest Du denn hier? Die Query ist aktiv, Du müsstest also entweder - die Query schließen, SQL ändern, öffnen und Ergebnis auslesen oder - eine 2. Query erzeugen, dieser die COUNT-Abfrage eintragen, öffnen und Ergebnis auslesen Ich würde die 2. Methode bevorzugen. Btw: was ist CountAll, hab ich noch nie gehört? |
Re: TQuery variabel
Also ich werde die 2te Query erzeugen und entsprechend abfragen.
'CountAll = Count *' ?? irgendwo habe ich das im Netz gelesen. Vielen Dank für die Antwort. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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