AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen
Thema durchsuchen
Ansicht
Themen-Optionen

ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen

Ein Thema von lxo · begonnen am 14. Aug 2023 · letzter Beitrag vom 14. Aug 2023
Antwort Antwort
lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#1

ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen

  Alt 14. Aug 2023, 14:34
Delphi-Version: 11 Alexandria
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen

  Alt 14. Aug 2023, 14:45
FeldBezeichner dürfen nicht mit Ziffern beginnen,

bzw., wenn es mit einer Ziffer beginnt, dann ist es eine Zahl und Zahlen enthalten keine Buchstaben.
$2B or not $2B
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#3

AW: ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen

  Alt 14. Aug 2023, 15:04
FeldBezeichner dürfen nicht mit Ziffern beginnen,

bzw., wenn es mit einer Ziffer beginnt, dann ist es eine Zahl und Zahlen enthalten keine Buchstaben.
Wo ist das denn definiert?
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.

Geändert von lxo (14. Aug 2023 um 15:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen

  Alt 14. Aug 2023, 15:50
Das dürfte in SQL-92 definiert sein.
Es gibt aber Datenbanken, die sich nicht daran halten. SQL-Server erlaubt meines Wissens sogar Leerzeichen.
TFDMemTable kommt damit übrigens klar wenn man den Feldnamen in doublequotes setzt.
Und wer will das und achtet immer darauf?
Abweichungen von solchen Basis-Standards führen bei einem Wechsel der DB oder beim Datenaustausch zu Problemen
Peter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: ClientDataSet Filter mit Fieldnames die mit einer Zahl anfangen

  Alt 14. Aug 2023, 18:07
Es kommt auch drauf an, wie man es schreibt.
z.B. lassen sich in vielen DBMS Bezeichner auch escapen.

vielleich 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++, ...............
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


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