2
In einer Tabelle habe ich ein TBytesField mit der Größe 60. Wenn ein Datensatz mit diesem Feld auf Null erstellt wird, möchte ich seinen Wert auf ein Array von Bytes wie [0,0,0.....0]
setzen. Ich verwende diesen Code:Delphi TBytesField SetData
var
ar : array of byte;
begin
if ByteField.AsBytes = nil then
begin
SetLength(ar, ByteField.Size);
ByteField.SetData(ar, True);
end;
end;
Obwohl ar
hat alle Bytes Null, ich sehe, dass das Feld diese Werte nimmt statt:
[17,32,0,0,0,0,0,0,48,192,182,1,0...0]
Was mache ich falsch?
Dies war mein erster Ansatz, aber ich erhielt die Meldung "ungültig Argument" bei bytesFiled.asBytes: = ar (an der Varianten Einheit Ausführung des Verfahrens TranslateResult (AResult: HRESULT)) – JimPapas
I don 'ich verstehe nicht. [Die 'AsBytes' Eigenschaft] (http://docwiki.embarcadero.com/Libraries/Tokyo/en/Data.DB.TField.AsBytes) wird Lese-/Schreibzugriff und arbeitet auf' TBytes' Werte. Das Zuweisen einer 'TBytes' -Variable zu einer' TBytes' -Eigenschaft sollte überhaupt nichts in der 'Variants'-Einheit enthalten. –
@JimPapas Bitte geben Sie einen Callstack für den Zeitpunkt des Fehlers an, damit festgestellt werden kann, warum TranslateResult aufgerufen wird. –