请问:如何把word文件到如到s'ql2000的image字段!
  另外:如何实现word文档的批量入库;
       如把一定格式(分割符,空行等)的word文件入库!不要丢失格式!
谢了!!
有相关源码最好!(我在作题库)

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, OleCtnrs, Grids, DBGrids, ExtCtrls, DBCtrls, DB, ADODB;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        DataSource1: TDataSource;
        OleContainer1: TOleContainer;
        OpenDialog1: TOpenDialog;
        Panel1: TPanel;
        DBGrid1: TDBGrid;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        DBNavigator1: TDBNavigator;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var sFileName:string;
      function  BlobContentToString(const FileName:string):string;
      begin
        with TFileStream.Create(FileName,fmOpenRead) do
        try
          setLength(result,Size);
          Read(Pointer(Result)^,size);
        finally
          free;
        end;
      end;
    begin
      //if OleContainer1.Enabled=true then
      try
       OleContainer1.SaveToFile(ExtractFilePath(Application.ExeName)+'tmp'+'.doc');
      except
        ShowMessage('失败');
      end;
      //OleContainer1.
      if OpenDialog1.Execute then
      begin
        sFilename:=OpenDialog1.FileName;
        //sFileName:=
        AdoQuery1.Edit;
        AdoQuery1.FieldByName('wordfile').AsString:=BlobContentToString(sFileName);
        AdoQuery1.Post;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var sFileName:string;
      bs:TAdoBlobStream;
    begin
      bs:=TAdoBlobStream.Create(TBlobField(AdoQuery1.FieldByName('wordfile')),bmRead);
      try
        sFileName:=ExtractFilePath(Application.ExeName)+'tmp';
        sFileName:=sFileName+'.doc';
        bs.SaveToFile(sFileName);
        OleContainer1.CreateObjectFromFile(sFileName,false);
      finally
        bs.Free;
      end;end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      OleContainer1.SaveAsDocument(ExtractFilePath(Application.ExeName)+'tmp1'+'.doc');
    end;end.
      

  2.   

    我们以前是用LoadfromStream来解决,传几十兆的大家伙也行。不过一般来说doc文件用Assign就解决了。