firebird Zeichensatz

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
ralli
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

Beitrag von ralli »

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

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

Re: firebird Zeichensatz

Beitrag von theo »

Ja klar UTF-8.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: firebird Zeichensatz

Beitrag von monta »

Würde ich auch sagen, UTF8 ist das Mittel der Wahl.
Johannes

ralli
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

Beitrag von ralli »

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

ralli
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

Beitrag von ralli »

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 ?
Pentium 4 - 2GB - Debian Lenny - Gnome 2.22.3 - Nvidia 8600 GT - FPC 2.2.2 - Lazarus 0.9.26 - GTK2

mse
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

Beitrag von mse »

ralli hat geschrieben:Bin ich auf weiter Flur der Einzige, der dieses Problem hat?
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.
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.

ralli
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

Beitrag von ralli »

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

Antworten