delphi 7.0数据库用sql2000RT,怎么实现添加WORD文档到数据库中?

解决方案 »

  1.   


    sql := 'UPDATE tab SET BGZW=:file' +
            ' where XTAJBH=''' + case_id + '''';
          execInt := DataModule_sys.ExecLobUpdate(sql, 'file', self.Edit_text.Text);
          //self.Edit_text.Text word 文档的路径和名称
          // BGZW 数据库大字段
          
          function TDataModule_sys.ExecLobUpdate(sql: string; LobName: string; FileName:
      string): Integer;
    begin
      try
        if self.ADOQuery1.Active then
          self.ADOQuery1.Close;
        self.ADOQuery1.Prepared := true;
        self.ADOQuery1.ParamCheck := true;
        self.ADOQuery1.SQL.Text := sql;
        ADOQuery1.Parameters.ParamByName(LobName).LoadFromFile(FileName, ftBlob);
        ADOQuery1.ExecSQL;
        result := self.ADOQuery1.ExecSQL;
      finally
        self.ADOQuery1.Prepared := false;
        self.ADOQuery1.ParamCheck := false;
        self.ADOQuery1.Close;
      end;
     // (ADOQuery1.FieldByName('aaa') as TGraphicField)
    end;
      

  2.   

    我试了一下,用如下代码可以解决问题了,同时谢谢楼上。
    if opendialog1.Execute then begin
    with adoquery1 do begin
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Text:='insert into T_test(title,content) Values(:title,:content)';
      Parameters.ParamByName('title').Value:=edit1.Text;
      Parameters.ParamByName('content').LoadFromFile(opendialog1.filename,ftBlob);
      ExecSQL;
    end;
    end;记录是有了,但是不知道怎么把文档读出来,content字段是文档的内容,我想用memo将内容显示出来,如何实现?
      

  3.   

    可以试试TMSWordDocument
    http://scalabium.com/
    这个组件应该是免费的
      

  4.   

    网上找的代码,经过测试后修改了一下在数据库上使用Image二进制字段保存,使用Stream流的方式。创建文件流:
    Word_FileStream:=TMemoryStream.Create;
    Word_FileStream.Position:=0;
    保存到数据库的Image字段:
    Word_FileStream.LoadFromFile('c:\wordfile.DOC');
    TBlobField(AdoQuery1.FieldByName(Column_Name)).loadfromStream(Word_FileStream);从数据库读取文件到本地硬盘:
    TBlobField(ADOQuery1.FieldByName(Column_Name)).SaveToStream(Word_FileStream);
    Word_FileStream.SavetoFile('c:\wordfile.DOC');释放文件流:
    Word_FileStream.Free;