Zitat von
TomDooley:
Ich habe in einem
SQL-Server eine Tabelle zu befüllen, deren Felder vom Typ "binary" sind. In einem zugehörigen ADODataSet werden Binär-Felder als TBytesField dargestellt. Ich habe nun aus einer anderen Tabelle die "String-Form" dieses Binärfeldes (Wert wird so angezeigt, wenn Spalte osql ausgelesen wird). Meine Frage ist nun, wie ich meinen Wert in einen Binärwert bzw. TBytesField-Wert konvertieren kann....
Ich hätte eigentlich gedacht, dass ich wie folgt vorgehen kann:
Binär-Wert ausgelesen über osql: OxBE597560
Delphi-Quellcode:
bf : TBytesField;
bf.AsString := 'BE597560';
Leider bekomme ich dadurch aber einen anderen Wert. Was mache ich falsch? Kann mir jemand einen Tip geben?
Du musst die Daten schon binär im String reingeben:
Delphi-Quellcode:
bf : TBytesField;
bf.AsString := #$BE#$59#$75#$60; // als hartcodierte Konstanten
// oder auch
data := 'BE597560';
bf.AsString := HexStringToStr(data);
PS: in der Code-Library findet sich dazu eine komplette Lösung.