![]() |
Datenbank: PostgreSQL • Version: 8.3 • Zugriff über: ZeosLib
Welcher Zeichensatz für neue DB (über Zeos) empfehlenswert?
Da wir momentan was PostgreSQL angeht noch recht grün hinter den Ohren sind, uns aber entschieden haben, es für kommende Projekte einzusetzen, stellt sich für mich gerade die Frage nach dem "richtigen" Zeichensatz für neue Datenbanken. Zugegriffen werden soll darauf mittels den Zeos-Komponenten (momentan) aus Delphi 7.
Standardmäßig ist bei PostgreSQL ja UTF8 als Zeichensatz für neue Datenbanken eingestellt (in diesem pgAdmin-Tool). Da UTF8 sowohl unter einem Windows- als auch Linux-Server zu Verfügung steht, wäre das erstmal die erste Wahl. Problem an der Geschichte ist nur die Client-Seite: Umlaute werden im Delphi-DBGrid falsch angezeigt. Auch wenn ich per INSERT-Befehl einen AnsiString, der Umlaute enthält, in eine UTF8-Datenbank einfügen will, kommt eine Fehlermeldung: Zitat:
Was also tun? 1. Gibt es irgend eine Möglichkeit, das DBGrid (oder DataSource oder Query oder Connection) irgendwie auf UTF8 umzustellen? 2. Ist UTF8 als Zeichensatz überhaupt empfehlenswert? Ich habe bei meinen bisherigen Tests auch den WIN1252-zeichensatz verwendet, weil ich damit die Probleme nicht habe. Allerdings steht der mir unter Linux nicht zu Verfügung, und wir haben auch Linux DB-Server im Einsatz. Vielen Dank für eure Hilfe :) ! |
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
OK, löse hier mal selbst auf: das Zauberwort heißt Client-Encoding. Ich übermittle dem Postgres-Server nun nach dem verbinden, dass ich als Client-Encoding LATIN9 (= ISO-8859-15) verwenden will, und prompt passen die Umlaute im DBGrid wieder :) . Und auch bei INSERT-Befehlen beschwert er sich nun nicht mehr über fehlerhafte UTF-8-zeichen, weil er die Daten fortan auch in LATIN9 erwartet.
Delphi-Quellcode:
Für mich ein gangbarer Weg :-D
procedure TForm1.ZConnection1AfterConnect(Sender: TObject);
begin ZConnection1.ExecuteDirect('SET CLIENT_ENCODING TO ''LATIN9'';'); end; |
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
Kommt ZEOS nicht mit UTF8 zurecht so das es eine Transparente Codierung UTF8 <-> Unicode vornimmt :gruebel:
Für größere Apps würde ich eh die DB-Schnittstelle z.B. mit Bridge-Pattern kapseln und wenn möglich auf DB-Sensitive Controls verzichten. Damit kannst du die nötigen Wandlungsfunktionsaufrufe in einer Klasse/Unit kapseln/zentrieren. |
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
Zitat:
Zitat:
Eine gewisse Zentralisierung des Datenzugriffs ließe sich ja mittels Connection auf Datenmodul erreichen. Was spricht dagegen, bei den verschiedenen Formularen mit DB-Zugriff auf die TZQuery zurückzugreifen? |
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
Zu Eurer Datenbankwahl einige Hinweise:
Ich war auch überzeugt, dass Progress "die" Datenbank ist. Die Praxis hat mich jedoch eines besseren belehrt. 1) Ihr solltet euch mit dem Thema Datensicherung auseinandersetzen - Ihr werdet feststellen, dass diese bei Progress mit einem hohen Aufwand verbunden ist. 2) Auf welchem Betriebssystem läuft in Zukunft der Postgress-Server? a) Ich habe es unter Fedora aufgegeben mit Postgress zu arbeiten - beim Update müssen alter und neuer Sever parallel laufen b) Postgress wird derzeit intensiv gepflegt, was ja zunächst sehr positiv ist, aber es wird dadurch ein regelmäßiger Updateauf- wand verursacht - wenn dann auch noch das Betriebssystem laufend hochgezogen wird, dann geht das einem selbst und auch dem Kunden ganz schön auf die Nerven - es genügt eine einzige Fehlentscheidung und man hat richtig Stress(z.B. hochziehen des Betriebssystem, ohne vorher einen Dump der DB gezogen zu haben) 3) Einfach die DB zu wechseln ist Theorie. - Postgress hat eine andere Schreibsyntax wie Firebird. 4) Zeos ist nicht frei von Problemen - lies einfach mal im ZEOS-Forum mit 5) Heute ein neues Projekt mit D7 aufzusetzen ist auch nicht unproblematisch - siehe die UTF8-Geschichte Gruß Alfred |
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
Zitat:
Zitat:
|
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Also dass die richtige und für das DBMS passende SQL-Syntax intern nur an einer Stelle zusammengestellt wird? Bei simplen SQL-Statements der Form "SELECT spalte FROM table WHERE column = value;" mag das ja noch gut machbar sein, aber wenn die Statements mal richtig komplex werden? Man kann ja nicht für jede Eventualität eine Schnittstellen-Funktion schreiben? Was würdest du da vorschlagen? Wie gesagt, den Sinn davon sehe ich ein.
function Select(const Select, From, Where: string): ResultSet;
|
Re: Welcher Zeichensatz für neue DB (über Zeos) empfehlenswe
Der Professor meine Bruders hat einmal folgendes gesagt:
Zitat:
Zitat:
![]() Gruß Alfred |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz