Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#4

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

  Alt 14. Apr 2012, 11:34
Hallo.

Danke für die Antworten. Dann nehme ich von MySQL erstmal Abstand.

Zu dem Unicode-Problem:

Also eigentlich wollte ich damals bei Beginn des Projekts volle Unicode-Unterstützung, da es einfach die Zukunft ist und keine weiß, was sie so bringt. Daher gleich von Anfang an Unicode. Deswegen würde ich das gerne weiter so durchziehen.

Die Datenbank habe ich leider nicht mit "default character set UTF8" erstellt, sondern dazu - glaube ich - nichts angegeben. Ich habe sie über ein Programm erstellt und immer, wenn ich nach Character Set gefragt wurde, habe ich UTF8 genommen.

Habe jetzt auch getestet: All meine VarChar-Felder sind wirklich echtes UTF8. Ich kann aus der Windows-Zeichentabelle alle Unicode-Zeichen eintragen - sie werden richtig gespeichert, stehen in der DB richtig und werden auch wieder richtig angezeigt.

Erstelle ich ein Blob-Feld (Subtype text) CS UTF8, dann werden bei Unicode-Zeichen nur "???" gespeichert. Warum? Ich schätze dann mal, dass es nicht an der Datenbank(-Definition), sondern entweder der Version (2.1) oder an der Verbindung (UniDAC) liegt.

Reicht es für ein Update der DB aus, das neue Paket zu laden und die Daten einfach zu ersetzen, oder muss ich noch Queries in der DB dazu ausführen?

Auch habe ich noch eine Frage zu den Blobs generell. In den Links, die ihr gepostet habt, steht folgender Satz drin:

Zitat:
And simply replacing your large VARCHARs with blobs is not necessarily the solution. Every time you change it, the versions are stored in the memory which can have a huge negative impact on server performance. So if you do work with variables that are blobs, do not manipulate them too often. Or alternatively work on VARCHAR variables and combine them in the last step to a single blob.
Ich kann zwar gut Englisch, aber das verstehe ich nicht ganz (vom Sinn her). Heißt dass, das jede Änderung eines Blob-Wertes gespeichert wird? Das wäre ziemlich schlecht, da ich all meine Datensätze (RTF-Format) in Blobs speichere. Keine RTF-Dokumente, aber RTF-Format. Oder bezieht sich das nur auf Änderungen an dem Felder (ALTER TABLE....)?

Danke!
  Mit Zitat antworten Zitat