![]() |
Datenbank: Oracle • Zugriff über: BDE
Problem bei der Übergabe von SQLStatements an ein TQuery
Hi Leute :hi:
also bei Datenbanken bin noch nen ziemlicher Neuling darum wird die Antwort wahrscheinlich sehr einfach sein. Vornweg hab schon versucht was passendes in der DB zu finden hat aber irgendwie nichts funktioniert. :? Also hier das Problem: Ich habe folgende SQL-Anweisung
Delphi-Quellcode:
die wenn ich sie direkt beim Objekt Inspektor unter SQl eintrage tadellos funktioniert und mir das gewünschte Ergebnis in einem DBGrid ausgibt. Nun soll statt dem Wort KABEL in der SQL Anweisung der eingegebene Text eines Edit Fenster stehen wenn ich nun also im Quelltext folgendes Statement schreibe
SELECT SUCHTEXT
FROM ARTIKEL Artikel WHERE SUCHTEXT LIKE '%KABEL%'
Delphi-Quellcode:
bekomme ich folgende Fehlermeldung:
Form1.MyQuery.SQL.Add:='SELECT SUCHTEXT FROM ARTIKEL Artikel WHERE SUCHTEXT LIKE '%+Form1.Edit1.Text+%'';
Zitat:
Schon mal danke an alle die sich die Mühe gemacht haben und bis hier gelesen haben. :thumb: |
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
Hi Silbar,
die %-Zeichen müssen noch vor die Hochkommata. Auserdem erwartet TStringlist.Add den neu eingefügten String als Übergabeparameter. So sollte es funktionieren:
Delphi-Quellcode:
Mfg
Form1.MyQuery.SQL.Add('SELECT SUCHTEXT FROM Artikel WHERE SUCHTEXT LIKE %'+Form1.Edit1.Text+'%;');
Christian |
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
Hi Silbar,
versuchs doch mal so:
Delphi-Quellcode:
Das Label kannst du übrigens in diesem Fall weglassen.
Form1.MyQuery.SQL.Add:='SELECT SUCHTEXT FROM ARTIKEL Artikel WHERE Artikel.SUCHTEXT LIKE ''%'+Form1.Edit1.Text+'%''';
Delphi-Quellcode:
gmc
Form1.MyQuery.SQL.Add:='SELECT SUCHTEXT FROM ARTIKEL WHERE SUCHTEXT LIKE ''%'+Form1.Edit1.Text+'%''';
|
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
Wieso liegt der "Suchtext" eigentlich als Feld in der DB ? Wieso steht da 2mal Artikel ? :shock:
Delphi-Quellcode:
Ich mache das so, sortiere nach Nummern und erschlage gleich noch die Groß/Kleinschreibung. 8)
ArtDS.SelectSQL.Text := 'SELECT * FROM ART WHERE UPPER (BEZ) LIKE UPPER (''%' + edSuch.Text + '%'') ORDER BY NR';
|
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
Danke für die Lösung Delphi kompiliert jetzt zwar aber nun kommt wenn ich auf den Button klicke der das ganze auslösen soll folgende Fehlermeldung:
Zitat:
Mein Quelltext sieht so aus:
Delphi-Quellcode:
PPS.:Im Edit-Fenster stand 'KABEL' drin.
procedure TForm1.Button1Click(Sender: TObject);
begin Form1.MyQuery.SQL.Add('SELECT SUCHTEXT FROM Artikel WHERE SUCHTEXT LIKE %'+Form1.Edit1.Text+'%;'); Form1.MyQuery.ExecSQL; end; PPPS.:Gemeint is die Lösung von Chris1986 die anderen teste ich noch @Hansa: Das kamm mit dem SQl Builder der TQuery Komponete ohe hat das unter des Builder irgendwie net funktionert liegt vermutlich am Aufbau der DB die ich bekommen habe. |
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
Delphi-Quellcode:
Grüße vom marabu
procedure TForm1.Button1Click(Sender: TObject);
begin Form1.MyQuery.SQL.Text := 'SELECT SUCHTEXT FROM Artikel WHERE SUCHTEXT LIKE ''%' + Form1.Edit1.Text + '%'''; Form1.MyQuery.Open; // ExecSQL nur, wenn du keinen result set erwartest end; |
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
das mag jetzt komisch klingen aber das DBGrid das ich mit der DataSource verbunden habe, das wiederum mit der TQuery verbunden ist gibt nix aus. Als ich den SQL Text direkt im Objekt Manager eingetragen habe hat sich das DBGrid selbstständig gefüllt nun isses aber leer obwohl ich weiss das es eigentlich mit Daten gefüllt sein müsste. Kann es sein das da noch ne Befehl fehlt der vorher net nowendig war?
PS.: Ich arbeite mit de Lösung von Marabu da bei den andere immer der Fehler von oben auf tritt Zitat:
|
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
Du solltest nicht mit ExecSQL() arbeiten, wenn du ein SELECT Statement zum Server schickst.
marabu |
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
mit welchem dann bin mit DB's net so vertraut bzw mit dem Befehlssatz
|
Re: Problem bei der Übergabe von SQLStatements an ein TQuery
Open heißt das Tier - habe ich weiter oben in den Code schon eingepflegt...
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:29 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 by Thomas Breitkreuz