blob里有些文件,想定期备份到磁盘,不知道dephi里是怎么操作blob字段的,请高手指点一二,或者哪里有这方面的字段

解决方案 »

  1.   

    用流
    //bde
    procedure Tfrm_XTDZDDYXX.mn_openpClick(Sender: TObject);var ms:tmemorystream;
    begin
    opendialog1.Filter:='All (*.'+wjhz0+')|*.'+wjhz0;
    if image1.Visible then
      begin
      if opendialog1.Execute then
      begin
        try
        ms:=tmemorystream.Create;
        ms.LoadFromfile(opendialog1.FileName);
        sub_Table.Edit;
        sub_TableNR.LoadFromStream(ms);
        showimage;
        finally
        ms.Free;
        end;
      end;
      end;
    end;
    //ado
    procedure Tfrm_XTDZDDYXX.mn_openpClick(Sender: TObject);
    var ms:tmemorystream;
    begin
    if sub_table.RecordCount<=0 then exit;
    //opendialog1.Filter:='All (*.'+wjhz0+')|*.'+wjhz0;
      if opendialog1.Execute then
      begin
        if (getfilesize(opendialog1.FileName)/(1024*1024))>=8.0 then
        begin
          messagebox(handle,pchar('文件大小不能超过8M,请选择其它的文件!'),'错误信息-文件太大',mb_iconerror);
          exit;
        end;
        try
        ms:=tmemorystream.Create;
        ms.LoadFromfile(opendialog1.FileName);
        sub_Table.Edit;
        (sub_Table.FieldByName('nr') as tblobfield).LoadFromStream(ms);
        wjhz0:=uppercase(ExtractFileExt(opendialog1.FileName));
        delete(wjhz0,1,1);
        sub_table.FieldByName('wjhzmc').AsString:=wjhz0;
        sub_Table.post;
        if image1.Visible then
        begin
        showimage;
        end
        else
        begin
        OleContainer1.DestroyObject;
        OleContainer1.CreateObjectFromFile(opendialog1.FileName,false);
        OleContainer1.run;
        OleContainer1.Visible:=true;
        end;
        finally
        ms.Free;
        end;
      end;
    end;