怎么样将WORD文档存入数据中?up有分!

解决方案 »

  1.   

    什么意思?如果是保存Word文档的话保存路径到数据库中就可以了!
      

  2.   

    procedure ReadBlob(str_filename,field_name,str_type:String;tbl_name:TAdoTable);//;ole:TOleContainer);
    var
      MemSize:integer;
      Buffer:PChar;
      MyFIle:TFileStream;
      Stream:TStream;
      str0 : string;
    begin
      str0 := str_filename;
      str_filename := str_filename+'.tmp';
      MyFile := TFileStream.create(str_filename,fmCreate);
      with tbl_name do
      begin
        open;
    //    Stream := TBlobStream.Create(Fieldbyname(field_name)as TBlobField,bmRead);
        Stream := CreateBlobStream(Fieldbyname(field_name),bmRead);
        MemSize :=Stream.Size;
        Inc(MemSize);
        Buffer := AllocMEM(MemSize);
        try
          Stream.Read(Buffer^,MemSize);
          MyFile.Write(Buffer^,MemSize);
        finally
          MyFile.Free;
          Stream.Free;
        end;
       str0 := str0 +str_type ;//'.doc';
       if FileExists(str0) then
         Deletefile(str0);
       if FileExists(str_filename) then
       begin
         RenameFile(str_filename,str0);
       end;
      end;
    end;
    procedure SaveBlob(str_filename,field_name:String;tbl_name:TAdoTable);
    var
      MemSize:Integer;
      Buffer:PChar;
      MyFile:TFileStream;
      Stream:TBlobStream;
      Filename:String;
    begin
    //   MyFile := TFileStream.Create(str_FileName,fmOpenRead);
       with tbl_name do
       begin
         TBlobField(tbl_name.FieldByName(field_name)).LoadFromFile(str_filename);
          Stream := TBlobStream.Create(Fieldbyname(field_name)as TBlobField,bmWrite);
          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;
    end;