![]() |
Datenbank: Firebird • Version: 1.5.2 • Zugriff über: Delphi 7 Professional + Zeos-Lib.
Zeichensatz-Problem in Firebird
Hallo allerseits,
Ich verwende in meinen Tabellen den Zeichensatz ISO8859_1. Beim Aufruf von:
Delphi-Quellcode:
kommt die Fehlermeldung:
SELECT * FROM TEST WHERE (FELD1 >= 'ABC') AND (FELD1 <= 'BßC')
Zitat:
Auch die Änderung des Zeichensatzes auf WIN1252 brachte keinen Erfolg. Jetzt meine Frage: Darf man Sonderzeichen, wie Umlaute, scharfes ß, etc. überhaupt nicht verwenden oder kann es nur die SELECT nicht auswerten? Da es sich bei den Vergleichen um Variable handelt, müsste ich ansonsten jedesmal vor dem Aufruf des SELECT den Inhalt der Vergleichsvariablen überprüfen und gegebenenfalls ändern, nur auf was? mfg Herbert |
Re: Zeichensatz-Problem in Firebird
Zitat:
Grüße vom marabu |
Re: Zeichensatz-Problem in Firebird
Hallo marabu,
kann man eigentlich beim Erstellen der Tabellen oder vielleicht sogar beim Erstellen der Datenbank per SQL einen bestimmten Zeichensatz definieren, wenn ja, wie funktioniert das? mfg Herbert |
Re: Zeichensatz-Problem in Firebird
Schon mal was von TDataBase gehört ? Guck mal da im OI unter ConnectionParams o.ä.
|
Re: Zeichensatz-Problem in Firebird
So, ich habe mir jetzt meine CREATE-Routine nochmals angesehen. Hier ist der Zeichensatz eingetragen.
Delphi-Quellcode:
Es werden in den Tabellen auch sämtliche Umlaute und das scharfe ß richtig angeschrieben, nur wie gesagt beim Selektieren kommen dan die Probleme.
ZConnection.Properties.Add('CreateNewDatabase=CREATE DATABASE ' +
QuotedStr(edDB.Text) + ' USER ' + QuotedStr(ZConnection.User) + ' PASSWORD ' + QuotedStr(ZConnection.Password) + ' PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1'); try ZConnection.Connect; mfg Herbert |
Re: Zeichensatz-Problem in Firebird
Warum wollt ihr immer mit Datenbanken anfangen und zwar damit, die Aufgaben eines kostenlosen Admin-Tools nachzubauen ? :shock: 70 % aller Fehler, so auch dieser werden dadurch geradezu herbeigesehnt. Und 95% aller Projekte werden deshalb mittendrin eingestellt. Und dann heißt es Datenbanken seien zu schwer. Und jetzt ? Wer soll jetzt sagen woran das liegt, daß es nicht geht ? Es werden haufenweise Vermutungen kommen, die dir aber nichts nützen werden. Vielleicht ist allerdings ein Zufallstreffer dabei. Mit Sicherheit wird kommen : die Zeos sind sowieso buggy usw. Mein Tip : mache das nicht mit Delphi/Zeos/eigenes Programm. Lege die Datenbank zuerst an und teste sie auf Herz und Nieren am besten mit IBexpert. Besteht dann immer noch die Notwendigkeit ein Programm zu machen, um IBExpert nachzubauen oder sontwas, dann hast du wenigstens eine DB, die geht.
|
Re: Zeichensatz-Problem in Firebird
Hallo,
ich verwende ebenfalls das Character Set ISO8859_1' Ich deklariere einen Chartypen wie folgt
SQL-Code:
Damot habe ich noch nie Probleme bekommen. Auch nicht mit deutschen Sonderzeichen
"FELD" VARCHAR(15) COLLATE DE_DE
|
Re: Zeichensatz-Problem in Firebird
Ich glaube, wir reden einander ein wenig vorbei.
Es funktioniert an und für sich alles - es werden die Umlaute richtig dargestellt, es funktioniert der Ausdruck mit Umlauten, etc. Nur - wenn das SELECT auf ein Datenfeld angewandt wird, so wie ich es hier verwende, wo ein bestimmter Bereich selektiert werden soll - und in diesem Bereich ein Datenfeld mit einem Umlaut vorkommt, dann kommt der Fehler. So - Ich habe jetzt haarscharf denselben SELECT direkt in IBExpert eingegeben und siehe da - dort funktioniert es. Was nun ? mfg Herbert |
Re: Zeichensatz-Problem in Firebird
Hallo Herbert,
den von dir beschriebenen Transliteration-Fehler kannst du nur vermeiden, wenn du beim Erzeugen der Datenbank einen Default-Zeichensatz (ISO8859_1 ist keine schlechte Wahl) angibst, beim Erzeugen der Tabellen auf die Angabe von CHARACTER SET verzichtest und beim Aufbau der Verbindung vom Client zum Server den Default-Zeichensatz der Datenbank erneut angibst. Bei Beachtung dieser Regeln erwarte ich keine Schwierigkeiten - auch nicht bei SELECT Statements wie in deinem Beispiel. Wenn du den Fehler nicht in den Griff bekommst, dann kannst du einen Auszug der Metadaten oder eine kleine Testdatenbank posten. marabu |
Re: Zeichensatz-Problem in Firebird
Hallo marabu,
ich habe deine letzten Anweisungen der Reihe nach genau befolgt - und - ES FUNKTIONIERT Allerbesten Dank wieder einmal für eure Hilfe. mfg Herbert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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