Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Einbindung einer SQL-Abrage (https://www.delphipraxis.net/162824-einbindung-einer-sql-abrage.html)

Flash68 6. Sep 2011 14:53

Einbindung einer SQL-Abrage
 
Hallo zusammen,

ich möchte gern folgende SQL-Abfrage:

Select * from Sicht where contains(*, '"*Text*"') {Text soll dann durch das Textfeld eines editfeldes sein(edt.text)}

in eine ADO-Querry mit SQL.ADD einbauen.
Bekomme aber entweder Meldungen das beim Compilieren ein Fehler oder es gibt direkt fehlermeldungen wegen der Syntax.

kann mir jemand helfen wie ich die Sonderzeichen mit '' maskiere das die Abfrage richtig ausgeführt wird.

Gruß

Flash

DeddyH 6. Sep 2011 15:04

AW: Einbindung einer SQL-Abrage
 
Hast Du einmal versucht, die Abfrage zu parametrisieren?

Flash68 6. Sep 2011 15:18

AW: Einbindung einer SQL-Abrage
 
Das habe ich noch nie gemacht, bis jetzt habe ich immer mit den SQL-Abfragen gearbeitet, weiß nicht wie das geht.

Normal trage ich die Abfragen direkt in das ADO-DataSet ein, nur das ist jetzt für eine Suche da brauche ich die Eingabe über ein Editfeld das dann auf Knopfdruck die Abfrage macht.

Gruß

Flash

DeddyH 6. Sep 2011 15:23

AW: Einbindung einer SQL-Abrage
 
Ein Beispiel aus der hohlen Hand:
Delphi-Quellcode:
ADOQuery.SQL.Text := 'SELECT Name, Vorname FROM Personen WHERE Wohnort = :ort';
ADOQuery.Parameters.ParamByName('ort').Value := 'Kleinkleckersdorf';
ADOQuery.Open;
Hier wird ein Parameter mit Namen 'ort' innerhalb der SQL-Abfrage definiert und später durch den entsprechenden Suchbegriff ersetzt. Anschließend werden die Daten abgerufen.

Flash68 6. Sep 2011 15:34

AW: Einbindung einer SQL-Abrage
 
Bei mir muß aber die Abfrage so sein wie in meiner Frage, das ist eine Volltextabfrage und da brauche ich die Sonderzeichen und die werden in der normalen form wie du sie beim SQL-Server eingibst nicht in Delphi akzeptiert.

DeddyH 6. Sep 2011 15:35

AW: Einbindung einer SQL-Abrage
 
Welche Sonderzeichen meinst Du jetzt?

Flash68 6. Sep 2011 15:50

AW: Einbindung einer SQL-Abrage
 
Folgende:

' und ", manchmal auch * oder %

DeddyH 6. Sep 2011 15:53

AW: Einbindung einer SQL-Abrage
 
Sollen die im Edit stehen? Dann werden sie durch das Parametrisieren automatisch passend escaped. Was genau hast Du denn ausprobiert, als die Fehlermeldung kam?

Flash68 7. Sep 2011 08:09

AW: Einbindung einer SQL-Abrage
 
ne das muß im Code stehen, sollte ungefähr so aussehen:

SQL.Clear;
SQL.ADD('Select * from Sicht where contains(*, ''"''*' EDT_Suchen.Text '*''"'')');

die eigentliche Abfrage sieht ja so aus: Select * from Sicht where contains(*, '"*Suchtext*"')
aber da meckert der Edit bei den hochkommas und oder wenn nicht dann meckert gibt es eine Fehlermeldung bei der Ausführung, Fehler beim Ausdruck Suchtext.

DeddyH 7. Sep 2011 08:16

AW: Einbindung einer SQL-Abrage
 
Versuch es mal so:
Delphi-Quellcode:
Query.SQL.Text := 'Select * from Sicht where contains(*, :suchtext)';
Query.Parameters.ParamByName('suchtext').Value := Format('"*%s*"', [EDT_Suchen.Text]);


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:15 Uhr.
Seite 1 von 2  1 2      

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