把word文档全部读入,存到数据库大字段中。

解决方案 »

  1.   

    以下是一个例子,该例子将整个word文件存放到数据库中。,如果有不明白的请参考帮助。
    写入数据库。
    function saveBBGSWithQuery(nd,dh:string):boolean;
    var
     g1:TblobField;
     i:smallint;
    begin
     result:=true;
     with query1  do begin
      close ;
      g1:=TblobField.Create(application);
      g1.FieldName:='BBGS';//这是存放文档的域。
      g1.DataSet:= query1;
      sql.Clear;
      sql.add('select * from '+Name_table+' where ND='''+nd+''' and DH='''+dh+'''');//Name_table是数据库中存word文档的表。该语句用于定位需要修改的纪录,在这之前,应该先生成一条纪录。
      RequestLive := true ;
      try
       open;
      except
       close;
       result:=false;
       RequestLive := false ;
       g1.Free;
       exit;
      end;
      edit;
      i:=5;
      g1.LoadFromFile(filename);//在此处填写需要存到数据库的文件名。
      try
       post ;
      except
       close;
       result:=false;
       RequestLive := false ;
       g1.Free;
       exit;
      end;
      close ;
      RequestLive := false ;
    end;
     g1.Free;
    end;从数据库中读
    function LoadBBGSWithQuery(nd,dh:string):boolean;
    const
     tempfile='c:\~bbtemp.vts';
    var
     g1:TBlobField;
     i:smallint;
     tt:pchar;
    begin
     result:=true;
     g1:=TBlobField.Create(self);
     g1.FieldName:='BBGS';
     g1.DataSet:= query1;
     with query1 do begin
      close ;
      sql.Clear;
      sql.add('select * from '+Name_Table+' where DH='''+dh+''' and ND='''+nd+'''');
     try
      open;
     except
      close;
      result:=false;
      g1.free;
      exit;
     end;
      g1.SaveToFile(tempfile);
      try
       f1book1.Read(tempfile,i);
      except
       result:=false;
      end;  close;
      g1.Free;
     end;
    end;