![]() |
SQL Anweisung an Button senden
Haaaallo,
ist es möglich, und wenn ja wie, eine SQL Anweisung (z.Bsp. SELECT * FROM tablename WHERE .......) über eine Button-Komponente zu starten? Mfg, enDyExellent |
Re: SQL Anweisung an Button senden
Hallo endyexcellent,
Schreibe eine OnClick-Prozedure für den Button, in der Du zunächst das SQL-Statement in die SQL-Eigenschaft einer TQuery einträgts und dann die Query öffnest! |
Re: SQL Anweisung an Button senden
Okay... habe jetzt eine Query Komponente mit der entsprechenden SQL Anweisung. Aber mit welchem Befehl starte ich die Query mit dem Button?
Mfg, enDyExcellent |
Re: SQL Anweisung an Button senden
Wie gesagt, eine OnClick-Prozedur:
Delphi-Quellcode:
Query1.Close;
Query1.SQL = 'SELECT * FROM tablename WHERE .......'; Query1.Open; |
Re: SQL Anweisung an Button senden
Jaaa :o) super, ich bin leider noch Anfänger..
und so:
SQL-Code:
klappt es jedenfalls nicht.
procedure TForm1.Button5Click(Sender: TObject);
begin IBQuery1.Close; IBQuery1.SQL = 'select PERSNR from MITARBEITER'; IBQuery1.Open; end; |
Re: SQL Anweisung an Button senden
Zitat:
Und es gibt bestimmt keinen Grund gleich unhöflich zu werden, blos weil jemand der dir nur helfen wollte mal ".Text" vergessen hat. :evil: |
Re: SQL Anweisung an Button senden
Zitat:
Delphi-Quellcode:
Die WHERE-Klausel möchte ich Dir vor allem bei großen Tabellen an's Herz legen, da Du sonst ewig auf die Daten wartest!
procedure TForm1.Button5Click(Sender: TObject);
begin IBQuery1.Close; IBQuery1.SQL.Clear; IBQuery1.SQL.Add ('select PERSNR'); IBQuery1.SQL.Add ('from MITARBEITER'); IBQuery1.SQL.Add ('where PERSNR < 20'); IBQuery1.Open; end; |
Re: SQL Anweisung an Button senden
Ich wollte keineswegs unhöflich sein. Und mein
Zitat:
So aber nun nochmal zu meinem Problemchen.. ..ja, es klappt nämlich dämlich immer noch nicht :roteyes: kann es sein dass es nicht klappt weil ich 2 Querys im Formular hab? Die eine Query ist auf True gesetzt damit man beim Start der Anwendung gleich die erste Abfrage bekommmt. Nun will ich über den Button die Tabelle neu anzeigen, refreshed sozusagen mit neuer Sortierung. Aber es klappert nicht und in der Hilfe hab ich natürlich auch schon nachgeschaut, und Bücher hab ich auch.. aber davon qualmt mir schon der Kopf. |
Re: SQL Anweisung an Button senden
Hier auch noch eine kleine Hilfe.....
Dieser Code ist für Oracle ausgelegt und verwendet Parameter. Dies kann aber auch sonst eingesetzt werden
Delphi-Quellcode:
PUBLIC
PROCEDURE Select1(Text1_param,Text2_param,Text3_param,Text4_param,Text5_param,Text6_param,Text7_param,Text8_param,Text9_param:String); ..... PROCEDURE TForm1.Select1(Text1_param,Text2_param,Text3_param,Text4_param,Text5_param,Text6_param,Text7_param,Text8_param,Text9_param:String); BEGIN Datamodule1.Query1.close; Datamodule1.Query1.SQL.clear; Datamodule1.Query1.SQL.add(Text1_param); IF NOT (Text2_param = '') THEN Datamodule1.Query1.Params[0].AsString := Text2_param; IF NOT (Text3_param = '') THEN Datamodule1.Query1.Params[1].AsString := Text3_param; IF NOT (Text4_param = '') THEN Datamodule1.Query1.Params[2].AsString := Text4_param; IF NOT (Text5_param = '') THEN Datamodule1.Query1.Params[3].AsString := Text5_param; IF NOT (Text6_param = '') THEN Datamodule1.Query1.Params[4].AsString := Text6_param; IF NOT (Text7_param = '') THEN Datamodule1.Query1.Params[5].AsString := Text7_param; IF NOT (Text8_param = '') THEN Datamodule1.Query1.Params[6].AsString := Text8_param; IF NOT (Text9_param = '') THEN Datamodule1.Query1.Params[7].AsString := Text9_param; Datamodule1.Query1.Open; END; PROCEDURE TForm1.Button64Click(Sender: TObject); BEGIN Select1('select * FROM XXXXXX WHERE YYYY = :Variable',Variable,'','','','','','',''); END; |
Re: SQL Anweisung an Button senden
Hihi. Danke für Tips.
Mein Problem ist glaube ich folgendes: Kan ich irgendeinen Befehl in den Button einbauen, welcher die erste Abfrage löscht und die zweite Abfrage startet? |
Re: SQL Anweisung an Button senden
Zitat:
Durch den Close Befehl wird die "Abfrage" eigentlich gelöscht. Was genau passiert denn (nicht) wenn Du den obigen Code ausführst? Wo sollen die Daten denn angezeigt werden? |
Re: SQL Anweisung an Button senden
Also ich hab folgenden Befehl:
Code:
Und die Abfrage wird angezeigt im DBGrid
procedure TForm1.Button1Click(Sender: TObject);
begin IBQuery1.Close; IBQuery2.Close; IBQuery2.SQL.Clear; IBQuery2.SQL.Add ('select PERSNR, ABTNR, NAME'); IBQuery2.SQL.Add ('from MITARBEITER'); IBQuery2.SQL.Add ('order by NAME'); IBQuery2.Open; end; Wenn ich den Button click dann wird erste Abfrage gelöscht, und weiter passiert nichts. Wieso startet die zweite Abfrage nicht? |
Re: SQL Anweisung an Button senden
Ich vermute mal, Dein DBGrid hängt an IBQuery1.
|
Re: SQL Anweisung an Button senden
Heisst also ich kann mit einem DBGrid garkeine 2 Query-Abfragen starten?
Weil ich muss beim DBGrid ja die DataSource angeben und die hängt ja fest an meiner Query, oder? |
Re: SQL Anweisung an Button senden
Okay. Dann ist mir alles klar :thuimb:
Lege ich einfach ein zweites DBGrid über das erste und habe somit 2 separate Abfragen. Mit den Buttons steuer ich dann die Visibilität und fertig ist das Teil. |
Re: SQL Anweisung an Button senden
Wieso nimmst Du zwei Query's? Mach doch alles in einer!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 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