Thema: Delphi INSERT mit BLOB Feld

Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#8

Re: INSERT mit BLOB Feld

  Alt 15. Apr 2004, 12:47
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:
  • xyz :Array of Byte
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);
  Mit Zitat antworten Zitat