AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zeichensatz-Problem in Firebird
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichensatz-Problem in Firebird

Ein Thema von hsbc · begonnen am 8. Mai 2005 · letzter Beitrag vom 12. Feb 2018
Antwort Antwort
Seite 1 von 2  1 2      
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#1

Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 14:54
Datenbank: Firebird • Version: 1.5.2 • Zugriff über: Delphi 7 Professional + Zeos-Lib.
Hallo allerseits,

Ich verwende in meinen Tabellen den Zeichensatz ISO8859_1. Beim Aufruf von:

SELECT * FROM TEST WHERE (FELD1 >= 'ABC') AND (FELD1 <= 'BßC') kommt die Fehlermeldung:

Zitat:
... String truncaction. Cannot transliterate character between character sets. ErrorCode -802.
Dies liegt am scharfen "ß" im zweiten Vergleich.

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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 18:07
Zitat von hsbc:
Ich verwende in meinen Tabellen den Zeichensatz ISO8859_1.
Ich vermute, dass du zwar FELD1 mit der Klausel CHARACTER SET ISO8859_1 definiert hast, aber hast du auch beim Anlegen deiner Datenbank einen Default-Zeichensatz festgelegt?

Grüße vom marabu
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#3

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 19:16
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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 19:37
Schon mal was von TDataBase gehört ? Guck mal da im OI unter ConnectionParams o.ä.
Gruß
Hansa
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#5

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 19:47
So, ich habe mir jetzt meine CREATE-Routine nochmals angesehen. Hier ist der Zeichensatz eingetragen.

Delphi-Quellcode:
        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;
Es werden in den Tabellen auch sämtliche Umlaute und das scharfe ß richtig angeschrieben, nur wie gesagt beim Selektieren kommen dan die Probleme.

mfg
Herbert
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 20:12
Warum wollt ihr immer mit Datenbanken anfangen und zwar damit, die Aufgaben eines kostenlosen Admin-Tools nachzubauen ? 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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 20:17
Hallo,
ich verwende ebenfalls das Character Set ISO8859_1'
Ich deklariere einen Chartypen wie folgt
 "FELD"   VARCHAR(15) COLLATE DE_DE Damot habe ich noch nie Probleme bekommen. Auch nicht mit deutschen Sonderzeichen
I come from outer space to save the human race
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#8

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 20:44
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 20:52
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
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#10

Re: Zeichensatz-Problem in Firebird

  Alt 8. Mai 2005, 22:19
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz