Dbf Filter mit Umlauten üöä

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Meridian
Beiträge: 12
Registriert: Di 22. Feb 2022, 12:19
OS, Lazarus, FPC: Window 11
CPU-Target: 64Bit
Wohnort: Cloppenburg

Dbf Filter mit Umlauten üöä

Beitrag von Meridian »

Hallo zusammen,

ich melde mich von der Insel Usedom, es ist heute einfach zu heiß für mich.

In einem kleinen Datenbankprogramm verwende ich die Felder STARNR, NAME, VORNAME, GEBJAHR und STRECKE.

Ich würde gerne auch einen Filter auf das Feld NAME setzen. Das funktioniert so lange, bis ich Namen mit Umlauten verwende.

Beispiel: HauptTab.Filter := NAME="Schlömer". > funktioniert nicht...

Ich habe auch schon ein wenig mit UTF8 probiert. Leider weiß ich nicht, wie die entsprechende Konvertierung einsetzen muss. Hat jemand etwas für mich, das mich weiter bringt?

Gruß Meridian
Ich verwende Lazarus 2.2.2 (rev lazarus_2_2_2) FPC 3.2.2 x86_64-win64-win32/win64

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Dbf Filter mit Umlauten üöä

Beitrag von theo »

Den Tipp hast du probiert?
viewtopic.php?f=17&t=13563&p=121005

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Dbf Filter mit Umlauten üöä

Beitrag von charlytango »

Den Tip von Theo hab ich nicht ausprobiert, ist aber sicher ein Blick wert.

"Damals" in DBF-Zeiten habe ich das so gelöst indem ich ein (oder mehrere) zusätzliche Felder in der Tabelle mitgeführt habe. Einmal den Namen mit übersetzten Umlauten (also UE statt Ü) die der Benutzer nie sah. Das gleiche auch mit einem Feld in dem das Ergebnis eines SOUNDEX() gespeichtert wurde. Dann konnte man da drüber auch Indizes legen die funktioniert haben und die Filter die ein Benutzer auf "Name" gesetzt hat liefen dann über diese Parallelfelder.

Aber das ist ewig her. Für mich persönlich gibt es (außer der Auftraggeber will es unbedingt oder es ist eine Schnittstelle) keinen wirklichen Grund mehr DBF zu verwenden.
Für derartige Applikationen benutze ich SQLite als Datenbank. Eine Datei für die Daten und die Zugriffs-DLL und gut ist es. Alles andere kann die Datenbank um einiges eleganter als DBF.

Meridian
Beiträge: 12
Registriert: Di 22. Feb 2022, 12:19
OS, Lazarus, FPC: Window 11
CPU-Target: 64Bit
Wohnort: Cloppenburg

Re: Dbf Filter mit Umlauten üöä

Beitrag von Meridian »

Danke. Das mit den zusätzlichen Feldern für die Namen mit ue, oe und ae hatte ich auch schon als Idee.

Aber dein Tipp mit SQLite als Datenbank gefällt mir und würde ich ja gerne anwenden, habe allerdings damit bisher nicht gearbeitet.
Wie instatlliere ich SQLite? habe es am Wochenende versucht und erhielt eine Fehlermeldung "xxx.dll" nicht gefunden und Lazarus startete nur noch mit einer Fehlermeldung.

Ich werde jetzt mal googlen, freue micht aber trotzdem auf Tipps.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Dbf Filter mit Umlauten üöä

Beitrag von af0815 »

Das schwierigste ist, die SQLite dll für dein System zu finden und in die richtigen Verzeichnisse zu legen.

Faustregel: Für Lazarus gehört eine Kopie in das Verzeichnis wo die Lazarus.exe sich befindet. Die ist zuständig, für alles was zur Designzeit in Lazarus passiert. Eine weiter Kopie dorthin, wo sich die Hexe deines Programmes sich befindet. Das ist die die zur Laufzeit und beim Debuggen verwendet wird.

Ein 64 Bit Lazarus benötigt eine 64 Bit dll für SQLite, Ein 32 Bit Lazarus eine 32 Bit dll.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Dbf Filter mit Umlauten üöä

Beitrag von charlytango »

neben den Tips von af0815 vielleicht einige Infoquellen:

Hier findest du einen guten Überblick über das grundlegende System und einige Details

Hier die Downloads der nötigen DLLs

Zur Wartung und Bearbeitung der Datenbank nutze ich HeidiSQL und DBBrowser for SQLite unter Windows

"Installieren" musst du nichts, wenn die ZugriffsDLL (sqlite3.dll) an den richtigen Stellen liegt (siehe voriges Posting von af0815) und die Datei mit den Daten auch (ich lege im Applikationsverzeichnis einen Ordner mit dem prosaischen Namen "data" an und packe beides rein - beim Öffnen der Applikation setze ich die Pfade zur Datendatei und zu der DLL)

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Dbf Filter mit Umlauten üöä

Beitrag von wp_xyz »

af0815 hat geschrieben:
Mo 15. Aug 2022, 22:15
Das schwierigste ist, die SQLite dll für dein System zu finden und in die richtigen Verzeichnisse zu legen.

Faustregel: Für Lazarus gehört eine Kopie in das Verzeichnis wo die Lazarus.exe sich befindet. Die ist zuständig, für alles was zur Designzeit in Lazarus passiert. Eine weiter Kopie dorthin, wo sich die Hexe deines Programmes sich befindet. Das ist die die zur Laufzeit und beim Debuggen verwendet wird.

Ein 64 Bit Lazarus benötigt eine 64 Bit dll für SQLite, Ein 32 Bit Lazarus eine 32 Bit dll.
Als Entwickler wird man es aber allmählich leid, sich für jedes Test-Projektchen unter Windows die sqlite3.dll ins exe-Verzeichnis dieses Projekts kopieren zu müssen. Daher habe ich mir die 64-bit dll ins Verzeichnis c:\windows\system32 und die 32-bit dll ins Verzeichnis c:\windows\syswow64 kopiert - damit ist ein-für-allemal Ruhe. Funktioniert dann automatisch richtig, egal ob man eine 32-bit oder eine 64-bit-Anwendung erzeugt. Achtung: beim Schreiben ins Windows-Verzeichnis muss man den UAC-Dialog abnicken. Und Warnung: dass die 64-bit und die 32-bit-dll jeweils ins anders benannte Verzeichnis kommen, ist KEIN Schreibfehler!

Meridian
Beiträge: 12
Registriert: Di 22. Feb 2022, 12:19
OS, Lazarus, FPC: Window 11
CPU-Target: 64Bit
Wohnort: Cloppenburg

Re: Dbf Filter mit Umlauten üöä

Beitrag von Meridian »

Vielen Dank für die Tipps und Download-Links.

Antworten