AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi In Firebird Blob-Text-Felder mit UTF-8 schreiben

In Firebird Blob-Text-Felder mit UTF-8 schreiben

Ein Thema von DJ-SPM · begonnen am 13. Apr 2012 · letzter Beitrag vom 16. Apr 2012
Antwort Antwort
Seite 2 von 2     12
RSF

Registriert seit: 13. Mär 2008
Ort: Frankenberg(Sa.)
41 Beiträge
 
Delphi XE Professional
 
#11

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 15. Apr 2012, 09:18
Ich überlege seit einiger Zeit auch das nächste Projekt mit Firebird zu erstellen.
z.B. aus lizenztechnischen Gründen.
Aber wenn ich solche und ähnliche Probleme lese, scheue ich die Umstellung und
bleibe bei Advantage Database Server. (Localserver ist kostenlos. ADS natürlich nicht)
Ronald
  Mit Zitat antworten Zitat
Benutzerbild von DJ-SPM
DJ-SPM

Registriert seit: 19. Mai 2003
Ort: Gründau
2.401 Beiträge
 
Delphi 2009 Architect
 
#12

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 15. Apr 2012, 10:49
Mir sind Unicodeprobleme bei IBDac in Verbindung mit Lazarus bekannt.
Da die entsprechenden IBDac-Quellen wohl in UniDac enthalten sein dürften, vermute ich den Fehler in der Komponente.
Das wäre ja noch viel schlechter... Es muss doch möglich sein, einen UTF8-String in einem Blob zu speichern
Wenn es wirklich an den UniDACs liegt, dann bin ich wirklich schlecht gelaunt. Zumal habe ich gestern die allerneueste Version installiert (nebenbei: selbst dabei gab's wieder Probleme) und zum anderen: günstig sind sie ja jetzt auch nich gerade. Nunja.

Ich konnte leider noch keine weiteren Tests machen. Der Fehler besteht also immernoch. Ich werde dann mal ein DB-Update machen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
35.526 Beiträge
 
Delphi XE6 Professional
 
#13

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 15. Apr 2012, 12:24
Wenn die Daten schon fehlerhaft in den Blob geschrieben wurden, bringt auch ein Update des Servers/Clients nichts mehr. Schau dir mal an, was genau im Feld der DB steht
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DJ-SPM
DJ-SPM

Registriert seit: 19. Mai 2003
Ort: Gründau
2.401 Beiträge
 
Delphi 2009 Architect
 
#14

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 15. Apr 2012, 12:51
Stimmt. Aber da habe ich Glück. Das Blob-Feld soll mit einem Programmupdate neu eingeführt werden. Der Fehler tritt also quasi noch in der Entwicklung auf.

Das andere Blob-Feld, das ich benutze macht keine Probleme, da es RTF speichert und die Sonderzeichen maskiert werden, wie ich das gesehen habe. Dieses Feld ist schon immer in der DB und demnach auch schon "ausgeliefert".

Ich fange jetzt an mit Backup/Restore und schau dann mal, wo der Fehler liegt.

Danke
  Mit Zitat antworten Zitat
Benutzerbild von DJ-SPM
DJ-SPM

Registriert seit: 19. Mai 2003
Ort: Gründau
2.401 Beiträge
 
Delphi 2009 Architect
 
#15

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 15. Apr 2012, 15:04
So,

habe jetzt ein Backup der alten DB gemacht, eine neue per Script erstellt und die Daten dann wieder importiert. Der gleiche Fehler tritt wieder auf. Kann es wirklich an den UniDACs liegen? Hier mal meine Vorgehensweise:

-------
Backup via gbak.exe
gbak.exe -b -g -z -v -i -IG -user SYSDBA test.db test.db.bak

Umbennen test.db -> test_tmp.db (nur, damit ich zur Not auf sie wieder zurückgreifen kann)

Neue DB erstellen via SQL-Query:
CREATE DATABASE ''test.db'' USER ''sysdba'' PASSWORD ''1234'' PAGE_SIZE 4096 DEFAULT CHARACTER SET UTF8

Restore via gbak.exe
gbak.exe -R o -v -user sysdba -password 1234 test.db.bak test.db

Neues Feld erstellt via SQL-Query:
ALTER TABLE test1 ADD PLAINTEXT BLOB SUB_TYPE TEXT;
-------

So, in alle Felder den gleichen Unicode-String eingetragen und in den VarChar-Felder das richtige Ergebnis erhalten. Beim Blob wieder nur "????"

Im Anhang habe ich die Felddefinition aus DBExpert angehängt. Ich bin ratlos.

Vielen Dank
Miniaturansicht angehängter Grafiken
db1.png   db2.png  
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
Ort: Oberreichenbach
14.269 Beiträge
 
Delphi XE2 Professional
 
#16

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 15. Apr 2012, 15:34
... (Localserver ist kostenlos)
Dann lies mal die Lizenzbedingungen genau durch. Der Localserver ist nicht in allen Fällen kostenlos!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
olaf

Registriert seit: 4. Mai 2009
66 Beiträge
 
RAD-Studio 2009 Pro
 
#17

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 16. Apr 2012, 09:08
Hallo,

Query.ParamByName(fParameter[i].fieldname).AsString:=fParameter[i].value;

Nehm mal AsMemo statt AsString.

olaf
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
424 Beiträge
 
#18

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 16. Apr 2012, 09:22
Ich verwende in einem Unicode-fähigen Delphi-Client mit Firebird 2.5 nicht UniDAC, sondern IBDAC, aber dort klappt das Speichern von Unicode mit TParam.AsMemo ohne Probleme.
  Mit Zitat antworten Zitat
Benutzerbild von DJ-SPM
DJ-SPM

Registriert seit: 19. Mai 2003
Ort: Gründau
2.401 Beiträge
 
Delphi 2009 Architect
 
#19

AW: In Firebird Blob-Text-Felder mit UTF-8 schreiben

  Alt 16. Apr 2012, 11:10
Danke an alle, insbesondere an olaf und tsteinmaurer,

ich habe heute Nacht herausgefunden, an was es gelegen hat. Ich hatte sogar zwei Fehler. Einmal habe ich DataType als ftBlob deklariert und dann eben noch mit asString gespeichert.

Ich kann bestätigen, dass es funktioniert, wenn man AsMemo benutzt. Ich stelle später, wenn ich wieder an der Delphi-VM sitze, den korrekten Quelltext online - eigentlich sind's ja nur ein paar Zeilen, aber der Vollständigkeit halber. Vllt. hat ja jemand mal wieder so ein Problem.

Danke, es funktioniert
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2014 by Daniel R. Wolf