用的是三层结构MIDAS,如何把图片,WORD文档存入数据库,双击这个字段可以将WORD文档打开。给出思路或者有一定源代码者,另开帖给分!!

解决方案 »

  1.   

    比如将某个WORD文档存入数据库自己先UP一下
      

  2.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
    tblMap: TADOTable;
    begin
     tblMap.Open;
     tblMap.Insert;
     tblMap.FieldByName('id').AsInteger := 2;
     (TBlobField(tblMap.FieldByName('pic'))).LoadFromFile('F:\Documents and Settings\chenwc\My Documents\My Pictures\kw.jpg');
     tblMap.Post;
     tblMap.Close;
    end;
      

  3.   

    用流的形式,先传到中间层,然后再用
     chenwc(海市蜃楼) 的方法
      

  4.   

    试试这段代码,我可以实现保存,和输出。
    procedure TForm_Contract_Show.Button_SaveClick(Sender: TObject);
    var MemSize:integer;
        Buffer:PChar;
        MyFile:TFileStream;
        Stream:TStream;
        FileName:string;
    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);
            //Form_Contract_Edit.ClientDataSet_ContractCDSDesigner10.LoadFromStream(Stream);
          finally
            MyFile.Free;
            Stream.Free;
          end;
          try
            Form_Contract_Edit.ClientDataSet_Contract.Post;
            Form_Contract_Edit.ClientDataSet_Contract.ApplyUpdates(0);
          except
            ShowMessage('保存失败!');
            halt;
          end;
            ShowMessage('保存成功!');
        end;
        Button_Save.Enabled:=False;
        OleContainer_Contract_DOC.CleanupInstance;
        OleContainer_Contract_DOC.Refresh;
    end;