难道在csdn中没人知道如何解答这个问题吗
csdn上没有高手
哈哈

解决方案 »

  1.   

    这段程序可能对你有用,我测试过程序可以运行通过,如果取出来也是如法炮制就可以了,你自己试试,如果不行再问我。tamade() 以后要多看书,不要尽说废话。
    procedure TForm_Contract_Show.Button_SaveClick(Sender: TObject);
    var MemSize:integer;
        Buffer:PChar;
        MyFile:TFileStream;
        Stream:TStream;
        FileName:string;
    begin
      if OpenDialog1.Execute then
      begin
        FileName:=OpenDialog1.FileName;
        MyFile:=TFileStream.Create(FileName,fmOpenRead);
        with Form_Contract_Edit.ClientDataSet_Contract do
        begin
          Open;
          Edit;
          Stream:=Form_Contract_Edit.ClientDataSet_Contract.CreateBlobStream(Form_Contract_Edit.ClientDataSet_Contract.FieldByName('合同文本'),bmReadWrite);
          MemSize:=MyFile.Size;
          Inc(MemSize);
          Buffer:=AllocMem(MemSize);
          try
            Stream.Seek(0,soFromBeginning);
            MyFile.Read(Buffer^,MemSize);
            Stream.Write(buffer^,MemSize);
          finally
            MyFile.Free;
            Stream.Free;
          end;
          try
            Form_Contract_Edit.ClientDataSet_Contract.Post;
            ShowMessage('保存成功!');
          except
            ShowMessage('保存失败!');
          end;
        end;
      end;
    end;