![]() |
Delphi-Version: 11 Alexandria
ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen
Hallo,
ich habe ein ClientDataSet mit Fields die einen FieldName haben der mit einer Zahl anfängt. Damit kommt wohl der Expression-Parser (Data.DBCommon.TExprParser) nicht klar. Klar könnte ich einfach einen Buchstaben vorne dran setzen, aber gibt es da evtl. eine Lösung für? Hab schon mit Quotes einfache und doppelte probiert aber geht auch nicht.
Delphi-Quellcode:
var
lCDS: TClientDataSet; begin lCds := TClientDataSet.Create( nil); try lCDS.FieldDefs.Add( '1A', ftFloat); lCDS.FieldDefs.Add( '1B', ftFloat); lCDS.CreateDataSet; lCDS.Filter := '(1A > 0) and (1B > 0)'; lCDS.Filtered := True; // Im Projekt ... ist eine Exception der Klasse EDatabaseError mit der Meldung '')' erwartet, jedoch 'A' vorgefunden' aufgetreten. finally FreeAndNil( lCds); end; end; end; |
AW: ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen
FeldBezeichner dürfen nicht mit Ziffern beginnen,
bzw., wenn es mit einer Ziffer beginnt, dann ist es eine Zahl und Zahlen enthalten keine Buchstaben. |
AW: ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen
Zitat:
Grundsätzlich ist es ja kein Problem. Nur z.B. beim Filter knallts. TFDMemTable kommt damit übrigens klar wenn man den Feldnamen in doublequotes setzt. |
AW: ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen
Das dürfte in SQL-92 definiert sein.
Es gibt aber Datenbanken, die sich nicht daran halten. SQL-Server erlaubt meines Wissens sogar Leerzeichen. Zitat:
Abweichungen von solchen Basis-Standards führen bei einem Wechsel der DB oder beim Datenaustausch zu Problemen |
AW: ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen
Es kommt auch drauf an, wie man es schreibt.
z.B. lassen sich in vielen DBMS Bezeichner auch escapen. vielleich
Delphi-Quellcode:
lCDS.Filter := '("1A" > 0) and ("1B" > 0)';
PS: Das mit keine Ziffer am Anfang ist in vielen Sprachen so. Auch Pascal/Delphi, JavaScript, PHP, Python, C++, ............... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 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