AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?
Thema durchsuchen
Ansicht
Themen-Optionen

FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

Ein Thema von Stewag · begonnen am 12. Feb 2024 · letzter Beitrag vom 14. Feb 2024
Antwort Antwort
Seite 2 von 3     12 3      
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#11

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 13. Feb 2024, 14:42
Zitat:
Wie sieht dein Filter aus?
na ja, hatte ich doch geschrieben:

Code:
FDTable1.Filter := 'lower (Name) like ' + Quotedstr(lowercase(Filter.Text) + '%');
Oder was meinst du?
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 13. Feb 2024, 15:15
ahhh, vorhin irgendwie wieder übersehn

* Dachte grade erst das Escaping hinten bei % stimmt nicht, aber doch OK.
* Und wie isses ohne das Leerzeichen zwischen Lower und ( ?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#13

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 13. Feb 2024, 15:21
Zitat:
Und wie isses ohne das Leerzeichen zwischen Lower und ( ?
daran liegt es leider auch nicht.
Steffen
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.929 Beiträge
 
Delphi 12 Athens
 
#14

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 13. Feb 2024, 15:48
Geht das
Code:
FDTable1.Filter := Format(
  '''
  lower (Name) like '%0:s%%'
  ''' ,
  [Filter.Text.ToLower]
  );

EDIT:
Code:
FDTable1.Filter := Format(
  '''
  LCASE(Name) like '%0:s%%'
  ''' ,
  [Filter.Text.ToLower]
  );
TTable wandelt alles in einen Select statement um und aus deinem Filter wird
Code:
WHERE {LOWER(A.NAME)}
aus dem Filter wie Uwe Raabe ihn vorschlug wird
Code:
WHERE LCASE(A.NAME)
Hätte es nicht eigentlich umgekehrt sein müssen ? Weil LCASE das localsql makro ist?


Ich suche einen SQL Sanitizer... daher habe ich mir den preprocessor von Firedac mal angesehen ob der
missbraucht werden kann um mit parametern als sanitizer zu arbeiten bevor ich einen Unprepared SQL
abschicke mit evtl. zweifelhaftem Inhalt.
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (13. Feb 2024 um 17:01 Uhr)
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#15

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 13. Feb 2024, 17:12
...super QuickAndDirty, vielen Dank, läuft!

Eine Verbesserung ist allerdings noch nötig, da ich den Codeformatierer benutze. Dieser ändert die für die Anweisung nötige Syntax (Zeilenumbrüche & Leerzeichen).
Daher habe ich die Suchbedingung im Objektmanager einem TLabel zugewiesen. (lbFilter.Text: LCASE(Name)like '%0:s%%' or LCASE(Vorname)like '%0:s%%' or LCASE(Beschreibung)like '%0:s%%')

Damit fallen auch die vielen Hochkommata weg und aus der Filterbedingung wird einfach:
Code:
tBoote.Filter := Format(lbFilter.Text, [Filter.Text.ToLower]);
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#16

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 14. Feb 2024, 06:14
Zitat:
einem TLabel zugewiesen
...warum einem TLabel und nicht einer Variable?
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#17

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 14. Feb 2024, 07:56
Zitat:
...warum einem TLabel und nicht einer Variable?
weil die vielen Hochkommata den Aufbau der Variablen wieder ziemlich kompliziert machen würden.
Steffen

Geändert von Stewag (14. Feb 2024 um 08:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 14. Feb 2024, 09:35
https://blogs.embarcadero.com/yukon-...ring-literals/

Aber ein weiterer Grund, warum die "neue" Syntax sch* ist, denn sie lässt sich nicht einzeilig nutzen, für sowas.



* in eine Ressourcendatei auslagern und von dort laden
* Außerdem gibt es Codeconverter, welche Test zu DelphiString und zurück umwandeln
* oder
* oder
* oder
Es gibt so viel, was besser ist, als ein Label die GUI zum Speichern.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Feb 2024 um 09:38 Uhr)
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#19

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 14. Feb 2024, 10:23
... mit einer Multiline String Konstanten habe ich es nicht geschafft.

Warum ist die Auslagerung in eine Ressourcendatei besser als ein unsichtbares TLabel?
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: FireDac & SQLite: Lower() und Upper() nicht mehr unterstützt?

  Alt 14. Feb 2024, 10:25
alles ist besser, als in der GUI
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:57 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