AW: ClientDataSet mit zwei Filtern
Was erwartest du denn bei
Delphi-Quellcode:
?
Memo1.Text := 'WHERE feld = ' + QuotedStr('Das ist ein Text mit '' und \ drin');
Code:
Bestimmt was Anderes als ich.
Input: WHERE feld = Das ist ein Text mit " , ' und \ drin
Pascal (QuotedStr: WHERE feld = 'Das ist ein Text mit " , '' und \ drin' SQL (EscapeValue): WHERE feld = 'Das ist ein Text mit " , \' und \\ drin' SQL (EscapeName): WHERE feld = "Das ist ein Text mit \" , ' und \\ drin" FilterText erwartet einen Text nach der Definition für SQL-Strings. QuotedStr erzeugt aber einen Text nach der Definition für Pascal-Strings. Und die sind nicht kompatibel, wenn es um Steuerzeichen geht. |
AW: ClientDataSet mit zwei Filtern
OK - Danke !
Das wusste ich natürlich nicht. Hans |
AW: ClientDataSet mit zwei Filtern
@himitsu:
Zitat:
http://docwiki.embarcadero.com/Libra...DataSet.Filter
Delphi-Quellcode:
with ADODataSet1 do begin
Filtered := False; Filter := 'State = ' + QuotedStr('CA') + ' OR ' + 'State = ' + QuotedStr('CA'); Filtered := True; end; |
AW: ClientDataSet mit zwei Filtern
Nur weil in der Doku etwas Falsches drin steht, heißt es noch lange nicht, dass es richtig ist. :angle2:
Wie gesagt, QuotedStr hat ein anderes Verhalten beim Quoting/Escaping, welches nicht zu einem SQL-Statement passt. Leider bringt Delphi nativ keine passenden SQL-Funktionen dafür mit, was auch ein bisschen verständlich ist, da es je nach DBMS/Dialekt leichte Unterschiede gibt. (wenn man damit sein SELECT zusammenbauen wöllte) Aber bezüglich DataSet.Filter weiß ich jetzt nicht, ob das wirklich vom DBMS abhängt ... scheint ja meinstens nur eine Implementation im Delphi zu sein, welches eine minimale Untermenge der im SQL92 enthaltenen Möglichkeiten für ein WHERE-Statement darstellt, welches man quasi mit AND an das WHERE anghängen würde. So lange keine Steuerzeichen oder irgendwas exotisches verwendet wird, also praktisch nur ASCII ohne ' / " und C0, dann gibt es keine Probleme. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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