Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.460 Beiträge
 
Delphi 12 Athens
 
#1

AW: Lesen/Schreiben von BINARY(16) über DataSet

  Alt Heute, 00:15
[EDIT]
Es ist alles Richtig. DU hast gesagt du willst einen STRING, also hat die DB dir auch einen STRING gegeben.
Zitat von BINARY:
Zum Speichern binärer Strings, unabhängig vom Zeichensatz. Wertebereich für M: 0 bis 255. Weiterer Typ: VARBINARY
https://www.schmager.de/mysql.php

Du wolltest bestimmt den Typ "BLOB", bzw. BLOB(16) verwenden?
(einige andere DBMS bieten sogar direkt einen Typen für GUID, inkl. einer automatischen VARCHAR-Konvertierung, falls man sowas braucht)

Aber ja, ich hätte unter "BINARY" auch erstmal was Anderes verstanden
[/EDIT]


DBTypen, welche die Query-Komponente nicht versteht, bzw. nicht implementiert hat, weichen als Ersatz gern auf VARCHAR aus.

Und da UTF-8 in DBMS nunmal statisch 3 (bis 5) Byte pro Char reserviert, passen in 16 Byte zufällig nur 5 Chars rein.
  • entweder du nutzt eine andere DBKomponente, welche z.B. genau auf das gewünschte DBMS ausgelegt ist
  • oder du erstellst selber die TField (TBlobField) und richtest sie passend ein (BlobType=ftBlob)
    (Dank dem neuen MixedMode muß man nun auch nicht mehr ALLE Felder selbst erstellen, sondern nur noch die Nötigen)
  • oder du spielst am TypeMapping rum, wo du selbst ensprechend die DBTypen zum gewüünschten TField-Typ definierst
  • oder ...
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (Heute um 00:27 Uhr)
  Mit Zitat antworten Zitat