firebird Zeichensatz
-
- Beiträge: 374
- Registriert: Mi 13. Sep 2006, 15:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Hagen a.T.W.
- Kontaktdaten:
firebird Zeichensatz
Mit welchen Zeichensatz erstellt Ihr eine firebird Datenbank , damit es später mit Lazarus bei der Anzeige keine Probleme gibt? Da habe ich utf8 oder UNICODE_FSS zur Verfügung. Wenn ich UNICODE_FSS benutze, dann gibt es bei dem Laden eines SQL Scriptes mit der Synedit Memo Komponente Probleme, das ich dann mit dem Scriptprozessor der ZeosLib ausführen lasse. Ich habe auf meiner Homepage eine mysql Datenbank laufen, wenn ich eine Datensicherung per SQL Script mache, dann muss ich im Texteditor extra das SQL Script neu mit dem utf8 Zeichensatz abspeichern. Überhaupt scheint es mit utf8 die wenigsten Probleme zu geben. Wer kann meine Erfahrungen bestätigen oder eine Empfehlung geben, welcher Zeichensatz auf Dauer die wenigsten Probleme bereitet.
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2
Re: firebird Zeichensatz
Ja klar UTF-8.
-
- Beiträge: 374
- Registriert: Mi 13. Sep 2006, 15:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Hagen a.T.W.
- Kontaktdaten:
Re: firebird Zeichensatz
Ich danke Euch, ich habe alles auf utf8 umgestellt und es läuft wie geschmiert. Wer es anders braucht kann, natürlich auch unicode oder win52 nehmen, aber die Vorgabe ist utf8.
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2
-
- Beiträge: 374
- Registriert: Mi 13. Sep 2006, 15:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Hagen a.T.W.
- Kontaktdaten:
Re: firebird Zeichensatz
Leider funktioniert der utf8 Zeichensatz nicht, weil es bei der Eingabe in den DBEdit Komponenten keine maximale Feldlänge möglich ist, die immer überschritten wird und dadurch das Programm beim Abspeichern des Datensatzes crasht. Wie habt Ihr das denn gelöst ? Bin ich auf weiter Flur der Einzige, der dieses Problem hat? Das gleiche gilt für unicode..
Kann mir bitte einer erklären, für was die Eigenschaft onutf8keypress der DBEdit Komponente verwendet wird ?
Kann mir bitte einer erklären, für was die Eigenschaft onutf8keypress der DBEdit Komponente verwendet wird ?
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: firebird Zeichensatz
Nein, du bist nicht der Einzige. Darum hat MSEgui die SQLDb geforked, alle diese Probleme gelöst und arbeitet mit UCS2/utf-16 statt utf-8.ralli hat geschrieben:Bin ich auf weiter Flur der Einzige, der dieses Problem hat?
Es wird dir wohl nichts anderes übrigbleiben, als die Feldlängen Metadata von der Datenbank abzufragen oder aus der Codierung zu bestimmen und die übergebenen strings selbst auf die maximale Länge (in Zeichen nicht Bytes) zu begrenzen. In Firebird begrenzt utf-8 im Unterschied zu UNICODE_FSS auf Zeichen statt Bytes. Im resultset gemeldet wird immer der maximale Speicherbedarf (Zeichenzahl*4 bei utf-8, Zeichenzahl*3 bei UNICODE_FSS wenn ich mich recht erinnere), die FPC FCL arbeitet mit dieser Zahl als Feldlänge, was zu den erwähnten Problemen führt.
Martin
Zuletzt geändert von mse am Mo 14. Sep 2009, 10:23, insgesamt 1-mal geändert.
-
- Beiträge: 374
- Registriert: Mi 13. Sep 2006, 15:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Hagen a.T.W.
- Kontaktdaten:
Re: firebird Zeichensatz
Danke Martin, jetzt habe ich es verstanden!
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2