![]() |
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 |
AW: Einbindung einer SQL-Abrage
Hast Du einmal versucht, die Abfrage zu parametrisieren?
|
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 |
AW: Einbindung einer SQL-Abrage
Ein Beispiel aus der hohlen Hand:
Delphi-Quellcode:
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.
ADOQuery.SQL.Text := 'SELECT Name, Vorname FROM Personen WHERE Wohnort = :ort';
ADOQuery.Parameters.ParamByName('ort').Value := 'Kleinkleckersdorf'; ADOQuery.Open; |
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.
|
AW: Einbindung einer SQL-Abrage
Welche Sonderzeichen meinst Du jetzt?
|
AW: Einbindung einer SQL-Abrage
Folgende:
' und ", manchmal auch * oder % |
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?
|
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. |
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 05:39 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