blob字段如何存取?
吾知为什么我DELPHI中不能用TBlobStream?

解决方案 »

  1.   

    1.保存
    var
          vTreeStream : TADOBlobStream;
          vSql : String;
    begin
          //(1)如果使用的是TTable,则要将其ReadOnly属性先置为false,然后调用Edit函数;
          //(2)如果使用的是TQuery,则要将其RequestLive属性先置为true,然后调用Edit函数;
          ADOTable1.Active := True;
          ADOTable1.Edit;//必须为Edit状态
          vTreeStream := TADOBlobStream.Create(TBlobField(ADOTable1.FieldByName('字段名')), bmWrite);
          vTreeStream.Seek(0, soFromBeginning);
          vTreeStream.Truncate;
          TreeLB.SaveToStream(vTreeSTream);
          vTreeStream.Free;
          ADOTable1.Post;
    end;2.读取
    var
          vTreeStream : TADOBlobStream;
    begin
          if ADOTable1.Active then ADOTable1.Active := False;
          ADOTable1.Open;
          vTreeStream := TADOBlobStream.Create(TBlobField(ADOTable1.FieldByName('字段名')), bmRead);
          vTreeStream.Seek(0, soFromBeginning);
          TreeLB.LoadFromStream(vTreeStream);//
          vTreeStream.Free;
          ADOTable1.Close;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var FileStream:TFileStream;
    begin
        FileStream:=TFileStream.Create('C:\ExcelName.XLS',fmOpenRead);
        //如果文件被占用可以更改fmOpenRead
        Try
           Table.Edit;
           MyBlobFile.LoadFromStream(FileStream)
           Table.Post;
        Finally
           FileStream.Free;
        End;
    end;或者
           Table.Edit;
           MyBlobFile.LoadFromFile('C:\ExcelName.XLS')
           Table.Post;
      

  3.   

    FileStream:=TFileStream.Create(文件可以是任何文件类型,fmOpenRead);
    MyBlobFile.LoadFromFile(文件可以是任何文件类型)