AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Problem mit Delphi XE, MySQL und Codepage
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Delphi XE, MySQL und Codepage

Offene Frage von "k0ppki11ah"
Ein Thema von k0ppki11ah · begonnen am 7. Feb 2011 · letzter Beitrag vom 8. Feb 2011
Antwort Antwort
Seite 2 von 2     12   
k0ppki11ah

Registriert seit: 18. Sep 2007
21 Beiträge
 
Delphi XE Enterprise
 
#11

AW: Problem mit Delphi XE, MySQL und Codepage

  Alt 7. Feb 2011, 14:24
Delphi-Quellcode:
s: AnsiString;
...
    s := memo1.lines.text;
    zquery1.fieldbyname('MEMO').Value := s;
Habe ich ausprobiert. Geht aber auch nicht.

In meinem Testprojekt werden die Daten korrekt in die DB geschrieben. Querys, die Umlaute enthalten, funktionieren aber auch nicht.
Versuche ich das gleiche in dem richtigen Projekt, kriege ich wieder den Fehler:
(SQL-Error:Incorrect string value \xf6\xf6\xf6) für den Eintrag ööö im Memo-Feld
  Mit Zitat antworten Zitat
k0ppki11ah

Registriert seit: 18. Sep 2007
21 Beiträge
 
Delphi XE Enterprise
 
#12

AW: Problem mit Delphi XE, MySQL und Codepage

  Alt 8. Feb 2011, 14:54
Fall es noch jemand interessieren sollte:
Ich habe anscheinend eine Lösung für das Problem gefunden.

In der JCL gibt es eine Unit JclStringConversions, die eine Funktion AnsiStringToUtf8() enthält.
Wenn man den komplett zusammengesetzten Query vor dem absetzen mit dieser Funktion umwandelt, funktionieren auch Abfragen, in denen Umlaute enthalten sind.
Die Funktion AnsiStrToUtf8() von Delphi hat an dieser Stelle nicht funktioniert.

Das einzige Problem, das ich bis dato festgestellt habe, tritt bei DB-Memos auf. Diese arbeiten anscheinend nicht mit dem UTF zusammen. Das lässt sich aber umgehen, in dem man ein normales TMemo-Feld verwendet, in das man die Daten per Konvertierung durch die Funktion UTF8ToAnsiString reinlädt:
memo1.lines.text := UTF8ToAnsiString(zquery1.fieldByName('MEMO').AsAnsiString); Speichern kann man das Memo dann über:
Delphi-Quellcode:
zquery1.edit;
   zquery1.fieldByName('MEMO').asAnsiString := JclStringConversions.AnsiStringToUTF8(memo1.lines.text);
zquery1.post;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 19:06 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