Zeos und zeichensatz

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Zeos und zeichensatz

Beitrag von khh »

hallo zusammen,
in meiner mysqldatenbank habe ich standardmässig den zeichensatz latin1_general_ci eingestellt.

Wenn ich aber aus Lazarus heraus mit ZEOS Umlaute in die Datenbank schreibe, stehen dort zb anstatt ü ü im feld.
beim Auslesen mit Lazarus stimmt zwar das ü, beim export oder bei der ansicht uber mysql steht dort eben dieses ü

Deshalb habe ich gedacht, dass die Zeichensätze nicht übereinstimmen, oder liege ich da falsch?
was ist sonst die Ursache ?

Gruss Kh

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Zeos und zeichensatz

Beitrag von Christian »

Das was du da siehst sind UTF-8 Steuerzeichen, Du musst an der Datenbank eher den zeichensatz einstellen den deine Anwendung benutzt und das ist im Lazarus nunmal durchgängig UTF-8 es sei denn du konvertierst es vor dem schreiben in die Datenbank selbst.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Re: Zeos und zeichensatz

Beitrag von khh »

Christian hat geschrieben:Das was du da siehst sind UTF-8 Steuerzeichen, Du musst an der Datenbank eher den zeichensatz einstellen den deine Anwendung benutzt und das ist im Lazarus nunmal durchgängig UTF-8 es sei denn du konvertierst es vor dem schreiben in die Datenbank selbst.
hallo Christian,
welche UTF-8 Einstellung ist die Richtige?
ich hab dänisch, bin, latin ausprobiert, aber keine dieser Einstellungen hat etwas am Problem geändert :-(


Gruss KH

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Re: Zeos und zeichensatz

Beitrag von piper62 »

hallo,
die Einstellungen, die Du da erwähnst sind keine UTF8 Codepages.
Hier ein Beispiel wie Du auf UTF8 umstellen kannst. Das bringt aber Nichts wenn die Table in MySQL bezüglich der Collation auf "latin1_general_ci" steht.
Es gibt bei Zeo die Möglichkeit die Codepage explizit zu setzen. Und zwar in der ZConnection:

ZConnection_main.Disconnect;
ZConnection_main.Properties.Clear;
// UTF8 Codepage
ZConnection_main.Properties.Add('codepage=utf8');
// oder auf Latin1 umstellen
ZConnection_main.Properties.Add('codepage=latin1');
ZConnection_main.Connect;

Grundsätzlich immer, wie Christian schon geschrieben hat, darauf achten, dass die Anwendung und die DB-Tabellen die gleiche Codepage benutzen.
Aufpassen musst Du nur wenn Du BLOBs in eine MySQL Tabelle schreiben möchtest. Da hatten wir Probleme wenn ein bestimmtes Codepage Settiing über die ZConnection Properties festgelegt wurde. Daher deaktivieren wir immer die ZConnection Properties vor dem Schreiben eines BLOBs und aktivieren das Codepage Setting nachher wieder.
Ich weiss noch nicht ob das Problem mit der aktuellen Zeos und der aktuellen FPC/Lazarus Version auch auftritt aber lieber Vorsicht walten lassen...

Gruss,
Piper

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Re: Zeos und zeichensatz

Beitrag von khh »

ich danke dir,habe es ausprobiert, klappt super :D


Gruss KH

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Re: Zeos und zeichensatz

Beitrag von khh »

piper62 hat geschrieben:hallo,
die Einstellungen, die Du da erwähnst sind keine UTF8 Codepages.


Gruss,
Piper
sollte natürlich heissen utf8_danish_ci etc.

Antworten