![]() |
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
€ zeichen macht probleme beim Einfügen in die db
hallo zusammen,
per FQuery1['BEZEICHNUNG1']:= FBEZEICHNUNG1; bestücke ich eine Query, und per post speichere ich die Datensätze in der DB. Das wird prinzipiell in unsern Programmen so gehandelt. Sobald jetzt aber in FBEZEICHUNG1 das € vorkommt, bekomme ich eine exception -802 ... or string truncation .. cannot translate character between character sets ich nehme mal an das Eurozeichen wird per ' maskiert was zum Fehler im String führt. Lasse ich mir die Variable anzeigen steht ganz normal '€' drin, Schreibe ich das €- zeichen in ' ' in die Variable wird '''#226#130#172#''' angezeigt :-( das DB-Feld ist vom Typ CHAR(50) CHARACTER SET ISO8859_1 was kann ich tun? |
AW: € zeichen macht probleme beim Einfügen in die db
Ums mal ganz brutal zu formulieren: ISO-8859_1 kennt ursprünglich kein €
es wurde erst nachträglich eingefügt, indem das Zeichen an Pos 128 durch das €-Symbol ersetzt wurde. Ob sich aber jetzt alle Programme, bzw Datenbanken und DB-Treiber daran halten, ist fraglich, bzw eher unwahrscheinlich. also: utf8 oder evtl. ![]() |
AW: € zeichen macht probleme beim Einfügen in die db
Da es in IBExpert funktioniert (gut, das €-Zeichen musste ich über die Zwischenablage einfügen) habe ich ZEOS im Verdacht.
|
AW: € zeichen macht probleme beim Einfügen in die db
mh
und was mach ich da am Besten? welcher Zeichensatz funktioniert denn mit dem € ? |
AW: € zeichen macht probleme beim Einfügen in die db
Ich nutze in solchen Fällen immer die Währungskürzel
EUR USD RMD usw. Gruß K-H |
AW: € zeichen macht probleme beim Einfügen in die db
Was immer geht, ist UTF8 (sollten zumindestens alle guten DBMS und Verbindungskomponenten beherschen :stupid: )
und man ist auch gleich für gewisse Fremdsprachen gewappnet. Gut, bei der Sortierreihenfolge und bei Stringvergleichen müßte man eventuell noch aufpassen, falls man da bestimmte Wünsche hegt. |
AW: € zeichen macht probleme beim Einfügen in die db
Zitat:
|
AW: € zeichen macht probleme beim Einfügen in die db
Zitat:
|
AW: € zeichen macht probleme beim Einfügen in die db
Zitat:
Aber was tun? |
AW: € zeichen macht probleme beim Einfügen in die db
nun wie schon gesagt,
![]() Du kannst nun aber suchen, ob du eine Datenzugriffkomponente findest, die das € Symbol an Pos 128(?) unterstützt. [edit]das ist aber definitiv ein inoffizieller Hack, UTF-8 würde ich vorziehen[/edit] |
AW: € zeichen macht probleme beim Einfügen in die db
gibts bei UTF-8 nicht Probleme mit Sonderzeichen und Umlauten, oder verwechsel ich da was ?
|
AW: € zeichen macht probleme beim Einfügen in die db
Gefunden auf
![]() Zitat:
![]() Zitat:
ich kann mit einem Feldnamen "/(_€$" einfach nichts anfangen, tut mir leid ;-) |
AW: € zeichen macht probleme beim Einfügen in die db
Wieso Feldnamen? Es geht um den Feldinhalt, nicht um Bezeichner.
|
AW: € zeichen macht probleme beim Einfügen in die db
Zitat:
|
AW: € zeichen macht probleme beim Einfügen in die db
Ja bei UTF -8 macht firebird die Sortierung eindeutig falsch. Umlaute kommen dann erst nach Z und das ß wird auch falschbehandelt. Und bei der Übernahme von Ansi zeichen hat er bei uns kleinbustabige umlaute total zerstört...
Das passiert alles bei ISO-8859-1 Collation DE_DE nicht. Und kann es sein das mein firebird kein ISO-8859-15 hat? Habe nur ISO-8859-13 dokumentiert gefunden. |
AW: € zeichen macht probleme beim Einfügen in die db
Zitat:
Gruß K-H |
AW: € zeichen macht probleme beim Einfügen in die db
Zitat:
![]() |
AW: € zeichen macht probleme beim Einfügen in die db
@QuickAndDirty: Das ist bei der Default Collation UTF8 der Fall, aber z.B. nicht bei der Collation UNICODE im Kontext des UTF8 Zeichensatzes.
|
AW: € zeichen macht probleme beim Einfügen in die db
Habe testweise neue DB angelegt (FB 2.1):
Code:
Dann noch Tabelle mit einem Feld. In Delphi kleines Programm gemacht (1 Edit, 1 DBEdit). In IBExpert ein € eingegeben. Mit Programm den Datensatz gelesen und Feld an Edit übergeben. Was steht im Edit ? Ein €. Das DBEdit holt sich das € sowieso direkt aus der Datasource. Es gelingt mir nicht KEIN € hinzukriegen. :mrgreen:
SET SQL DIALECT 3;
SET NAMES ISO8859_1; CREATE DATABASE ... USER 'SYSDBA' PASSWORD 'masterkey' PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1; Zum € an sich : ich würde mir wirklich überlegen, ob das überhaupt Sinn macht, das zu verwenden. Da zählen eigentlich nur Platzgründe. Und wird der Platz eng, dann lässt man die Währung eben notfalls weg. Jeder Hausfrau wird klar sein, wenn auf ihrer Rechnung steht "Butter 0,99", dass es sich bei 0,99 um einen Geldbetrag handelt. Dass sie mit Euros bezahlt hat, das weiss sie auch. :lol: Kommen ausländische Währungen ins Spiel, dann nützt 1 Zeichen als Abkürzung sowieso nichts, ausser man braucht ausgerechnet nur €,$ oder und da fängt der Kleinkram wieder an : britisches Pfund, bei dem ich jetzt nicht mal weiss, wie ich das komische "L" hinkriege. Was bleibt einem bei schweizer Franken übrig, als CHF zu verwenden ? Oder Rubel? Spätestens dann ist die "Platzersparnis" für die Katz. Und selbst wenn es da Abkürzungen a la € gibt, dann kennt die kein Mensch. Nächste Fehlerquelle bei exotischen Zeichen wurde übrigens noch nicht angesprochen : Drucker. Also mir reicht jedenfalls schon ä,ö usw. € muss nicht auch noch sein. 8-) |
AW: € zeichen macht probleme beim Einfügen in die db
Wie schon gesagt, bei mir ging es auch. Allerdings: wenn es bei Unicode keine Probleme gibt (Lazarus ist AFAIK schon lange unicode-fähig), wieso nicht benutzen? Es geht ja u.U. nicht nur um Preisangaben, andere Werte (Beschreibungen oder sowas) können ja durchaus auch spezielle Zeichen beinhalten.
|
AW: € zeichen macht probleme beim Einfügen in die db
Zitat:
Bei mir lässt IB-Expert die Eingabe des € nur im unicode-editor zu und im Programm steht dann im Editfeld: ⬠|
AW: € zeichen macht probleme beim Einfügen in die db
Welcher Zeichensatz ist beim Verbindungsaufbau in IBExpert und in der Anwendung ausgewählt?
|
AW: € zeichen macht probleme beim Einfügen in die db
Ich habe beides probiert: wie Deddyh geschrieben hat geht es nicht. Das EUR-Symbol per Tastatur einzugeben. Es steht aber trotzdem jetzt in db drin und wird richtig im Programm angezeigt. Gebe ich im Programm ein EUR-Symbol ein und speichere das ab, dann geht auch das und das kann ich auch in ibexpert sehen. Ich schreibe das hier gerade auf iPhone und da gibt's das EUR -Symbol auch nicht. Für zahlenkolonnen und wirklich wenig Platz, dafür gibt's ja auch Überschriften. Allerdings: die Tatsache, dass das Symbol Ärger macht deutet darauf hin, dass der Grund dafür tiefer liegt. Könnten mal wieder die Zeos sein. Bei mir läuft das unter fibplus. Und wie gesagt: Charset immer iso8859_1.
|
AW: € zeichen macht probleme beim Einfügen in die db
Ich habe ja geschrieben, dass ich das € mittels Zwischenablage eingefügt habe, per Tastatur ging das bei mir nämlich auch nicht.
|
AW: € zeichen macht probleme beim Einfügen in die db
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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-2025 by Thomas Breitkreuz