AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem bei der Übergabe von SQLStatements an ein TQuery
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei der Übergabe von SQLStatements an ein TQuery

Ein Thema von Silbar · begonnen am 13. Jul 2005 · letzter Beitrag vom 14. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Silbar

Registriert seit: 23. Jun 2005
42 Beiträge
 
Delphi 6 Professional
 
#1

Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 12:48
Datenbank: Oracle • Zugriff über: BDE
Hi Leute

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:
SELECT SUCHTEXT
FROM ARTIKEL Artikel
WHERE SUCHTEXT LIKE '%KABEL%'
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  Form1.MyQuery.SQL.Add:='SELECT SUCHTEXT FROM ARTIKEL Artikel WHERE SUCHTEXT LIKE '%+Form1.Edit1.Text+%''; bekomme ich folgende Fehlermeldung:
Zitat:
[Error] OMDBTestUnit.pas(57): Not enough actual parameters
[Error] OMDBTestUnit.pas(57): Illegal character in input file: '%' ($25)
[Error] OMDBTestUnit.pas(57): Illegal character in input file: '%' ($25)
[Fatal Error] OMDBTestProject.dpr(5): Could not compile used unit 'OMDBTestUnit.pas'
Weiss einer wie ich den Quell code korrigieren muss damit es läuft?

Schon mal danke an alle die sich die Mühe gemacht haben und bis hier gelesen haben.
Zukunft: etwas, das die meisten Menschen erst lieben, wenn es Vergangenheit geworden ist.

- William Somerset Maugham (engl. Schriftsteller)
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 12:58
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:
Form1.MyQuery.SQL.Add('SELECT SUCHTEXT FROM Artikel WHERE SUCHTEXT LIKE %'+Form1.Edit1.Text+'%;'); Mfg
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 13:00
Hi Silbar,

versuchs doch mal so:
Form1.MyQuery.SQL.Add:='SELECT SUCHTEXT FROM ARTIKEL Artikel WHERE Artikel.SUCHTEXT LIKE ''%'+Form1.Edit1.Text+'%'''; Das Label kannst du übrigens in diesem Fall weglassen.
Form1.MyQuery.SQL.Add:='SELECT SUCHTEXT FROM ARTIKEL WHERE SUCHTEXT LIKE ''%'+Form1.Edit1.Text+'%'''; gmc
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 13:06
Wieso liegt der "Suchtext" eigentlich als Feld in der DB ? Wieso steht da 2mal Artikel ?

ArtDS.SelectSQL.Text := 'SELECT * FROM ART WHERE UPPER (BEZ) LIKE UPPER (''%' + edSuch.Text + '%'') ORDER BY NR'; Ich mache das so, sortiere nach Nummern und erschlage gleich noch die Groß/Kleinschreibung. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Silbar

Registriert seit: 23. Jun 2005
42 Beiträge
 
Delphi 6 Professional
 
#5

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 13:13
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:
General SQL error
ORA-00911: Ungültiges Zeichen
PS.:
Mein Quelltext sieht so aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Form1.MyQuery.SQL.Add('SELECT SUCHTEXT FROM Artikel WHERE SUCHTEXT LIKE %'+Form1.Edit1.Text+'%;');
 Form1.MyQuery.ExecSQL;
end;
PPS.:Im Edit-Fenster stand 'KABEL' drin.

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.
Zukunft: etwas, das die meisten Menschen erst lieben, wenn es Vergangenheit geworden ist.

- William Somerset Maugham (engl. Schriftsteller)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 13:17
Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
Silbar

Registriert seit: 23. Jun 2005
42 Beiträge
 
Delphi 6 Professional
 
#7

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 13:25
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:
[Error] OMDBTestUnit.pas(57): Not enough actual parameters
Zukunft: etwas, das die meisten Menschen erst lieben, wenn es Vergangenheit geworden ist.

- William Somerset Maugham (engl. Schriftsteller)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 13:29
Du solltest nicht mit ExecSQL() arbeiten, wenn du ein SELECT Statement zum Server schickst.

marabu
  Mit Zitat antworten Zitat
Silbar

Registriert seit: 23. Jun 2005
42 Beiträge
 
Delphi 6 Professional
 
#9

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 13:30
mit welchem dann bin mit DB's net so vertraut bzw mit dem Befehlssatz
Zukunft: etwas, das die meisten Menschen erst lieben, wenn es Vergangenheit geworden ist.

- William Somerset Maugham (engl. Schriftsteller)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Problem bei der Übergabe von SQLStatements an ein TQuery

  Alt 13. Jul 2005, 13:35
Open heißt das Tier - habe ich weiter oben in den Code schon eingepflegt...

marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:04 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