jupp
,
Das wäre ein Problem.
Der String endet beim ersten #0.
Aber du kannst den Array auch direkt in die
DB schreiben (mit
ADO müsste es so gehen, dürfte mit dem
IB-Zeugs ähnlich ablaufen):
Schreiben:
Delphi-Quellcode:
With ADOQuery
Do
Begin
SQL.Text :=
'
Insert INTO MyTabelle' + #10 +
'
(ID, MyFeld1, MyBlob)' + #10 +
'
VALUES' + #10 +
'
(:i_ID, :i_MyFeld1, :i_MyBlob)';
Prepared := True;
With Parameters
Do
Begin
ParamByName('
i_ID').Value := '
1';
ParamByName('
i_MyFeld1').Value := '
Test';
With ParamByName('
i_MyBlob')
Do
Begin
DataType := ftBlob;
Value := xyz;
End;
End;
ExecSQL;
End;
Auslesen:
- xyz :Array of Byte
- i :Integer
- OutStr :string
Delphi-Quellcode:
With ADOQuery
Do
Begin
SQL.Text :=
'
SELECT *' + #10 +
'
FROM MyTabelle';
open;
While Not Eof
Do
Begin
OutStr := OutStr + #10 +
FieldByName('
ID').asString + '
:';
With FieldByName('
MyBlob')
As TBlobField
Do
Begin
SetLength(xyz, BlobSize);
xyz := CurValue;
End;
For i := low(xyz)
To high(xyz)
Do
OutStr := OutStr + #10 + '
-> ' + IntToStr(xyz[i]);
Next;
End;
End;
Delete(OutStr, 1, 1);
ShowMessage(OutStr);