我使用的是adoQuery,datasource,adoconnection.
Thanks very much!

解决方案 »

  1.   

    procedure TFrmMain.TeThemeSpeedButton3Click(Sender: TObject);
    Var
      FS:TFileStream;
      BS:TADOBLOBStream;
    begin
      FOP.InitialDir:=ExtractFilePath(Application.ExeName);
      if FOP.Execute=true then
      begin
        try
        FS:=TFileStream.Create(FOP.FileName,fmopenread);
        ARSM.Edit;
        ARSM.Append;
        bs:=TADOBLOBStream.Create(ARSMIFILE,bmReadWrite);//ARSMIFILE是数据库中的Image字段
        bs.Seek(0,soFromBeginning);
        bs.Truncate;
        bs.CopyFrom(FS,FS.size);
        bs.Free;
        fs.Free;
        ARSM.post;
        FrmMain.OleContainer1.CreateObjectFromFile(FOP.FileName,false);
        finally
          //
        end;
      end;
    end;
      

  2.   

    如果仅仅是存在一byte数组的值,还需要以上那么复杂操作吗?
      

  3.   

    恩,需要这样,不过可以用TMemoryStream来代替TFileStream
      

  4.   

    没这个必要,你只要把byte数组当成一个字符串就行了。
      

  5.   

    很奇怪,我的delphi好像只有一个blob组件,就是DBImage。
    好像没有blobField组件?
      

  6.   

    blobField不是控件件,只是一个类而已(就象TStringList),你加了db单元,就可以用了,Sunlily(阳光) ( ) 
    的说法不对哈,string和byte怎么可能一样,加载一个2进制文件的化试试,你会出错的
      

  7.   

    Var
      Tempstream:TMemoryStream;
      len: integer;
      
    beginTempstream:=TMemoryStream.Create;
    len := GetArryLenth();//自己写的函数Tempstream.WriteBuffer(数组,len);
    Parameters.ParamByName('字段').LoadFromStream(Tempstream, ftblob);end;