Also das Programm was Du da benutzt, generiert im Hintergrund SQL, denn nur das Versteht Postgres. Bei SQL gibt es jedoch zwei Abteilungen.Das sogenannte DDL und das DML. DDL Statements sind solche SQL-Abfragen wie z.B CREATE TABLE oder CREATE INDEX (DDL = Data Definition Language). Mit DML kann man Sachen wie SELECT * FROM adressen machen und Daten abfragen und z.B mit UPDATE oder INSERT manipulieren (DML = Data Manipulation Language).
Mit dem DDL-STatement "CREATE PRIMARY KEY" wird auf eine bestimmte Spalte deiner Tabelle ein Index angelegt der dafür sorgen soll, das z.B via SELECT die
Daten schnelle ermittelt und die ganze Abfrage insgesammt wesentlich schneller ausgeführt . Gerade im Bereich Performance spielen die Indexe eine außerordentliche und wichtige Rolle mit der Du Dich möglichst bald einmal beschäftigen solltest.
Ich schätze was Zeichenkodierung ist weißt Du schon. Postgres gestattet es Dir die Daten in deinen Tabellen auf Basis eines von Dir festzulegenden Zeichensatz zu kodieren. Früher hat man sehr oft einfach nur ASCII genommen, das ist für amerikanische Wörter auch kein Problem aber mit deutschen oder skandinavischen Umlauten und Sonderzeichen gibt es da Stress.Um es kurz zu machen: Die meisten Leute benutzen heute einfach die Codierung UTF-8, diese muss jedoch vom DB-Server (also in deinem Fall Postgres) und dem Client Programm (dein Lazarus Programm) verstanden und daher vorher eingestellt werden und dazu gibt es mehrere Möglichkeiten, eine ist es das an der Befehlszeile zu tun oder sich gewisser Hilfsmittel zu bedienen. Ich vermute mal das Du mit dem hervoragenden Client Programm PGAdmin3 arbeitest (so wie ich auch) das nun ja mittlerweile in der Stadardinstallation unter Windows immer vom Postgresinstaller mitinstalliert wird, anstatt direkt auf der der Befehlsshell wie unsere meisten Hardcore/Poweruser hier im Forum.Geh doch mal bitte im PGAdmin3 auf deine Lazarus Datenbank und überprüfe den DDL Abschnitt der ungefähr so aussehen müsste:nur kann ich mit set client_encoding = 'win1252' nichts anfangen da ich nicht weis wozu das ist, soll ich das im query analyzer compilieren oder was?
Wenn da etwas anderes steht als UTF8 würde ich das an deiner Stelle auf UTF8 ändern (musst Du zwar nicht, empfehle Ich Dir aber) möglicherweise muss Du deine Daten noch auf UTF8 umstellen, z.B dann wenn es auch im PGAdmin3 beim selektieren der Daten hier zu Umlautproblemen kommt. Als nächstes gehe imCREATE DATABASE mydb
WITH OWNER = admin
ENCODING = 'UTF8';
PGAdmin3 bitte auf auf den Bereich "Login Rollen" und klicke den User mit Rechtsklick an mit dem sich dein Lazarus Programm verbindet möchte.Als nächstes siehst Du einige Reiter, einer davon heißt "Variablen", wechsel bitte in diesen.In der Rubrik Variablen siehst Du nun ein Dropdownfeld mit Namen Variablennamen, dort wähle bitte die Variable mit namen "CLIENT_ENCODING" aus und trage als Variablenwert utf8 ein und klicke zum Abschluss noch auf den Hinzu/Ändern Button damit die Einstellungen gesichert werden.Der Effekt ist nun, das immer wenn sich dein Lazarusprogramm von nun an mit Postgres über diesen User verbindet das Clientencoding auf UTF-8 eingestellt ist, ich vermute mal dass nun dein Umlaut und Sonderzeichen Darstellungsproblem mit deinem Lazarus-Programm gelöst sein sollte. Wenn dem nicht so ist, schaue bitte in der Lazarus IDE nach ob Du das Coding auf UTF umstellen kannst.
Gruß, Marc



LinkBack URL
About LinkBacks
Zitieren


Lesezeichen