我现在已将word文件存入access数据库,但无法读出来?
请指点一二,不胜感激.

解决方案 »

  1.   

    用Tstream来读就好了
    很容易的
      

  2.   

    李维的ADO那本书里有介绍,看看去吧
      

  3.   

    "李维的ADO那本书里有介绍"这是哪本书?哪里可以找到。我也碰到了一样的问题。
      

  4.   

    简单来说就是用TBLOBStream和TMemoryStream. 有很多这样的文章的, 以前也有人问过.
    你好好找找吧. 
    对了, 好多人都提到李维写的书, 到底是什么书呀? 叫什么名字呀? 我也很想看看...
      

  5.   

    这个问题很多帖子都有,我这给点提示
    var
      MemSize: Integer;
      Buffer: PChar;
      MyFile: TFileStream;
      Stream: TBlobStream;
    begin
        MyFile:=TFileStream.Create('c:\temp.tmp',fmCreate);
        with table1 do
        begin
          Open;
          Stream:=TBlobStream.Create(FieldByName('Doc') as TBlobField, bmRead);
          MemSize := Stream.Size;
          Inc(MemSize);
          Buffer := AllocMem(MemSize);
         try
            Stream.Read(Buffer^,MemSize);
            MyFile.Write(Buffer^,MemSize);
            statictext1.caption:='文件名:'+FieldByName('Name').Asstring;
            statictext2.caption:='文件大小:'+FieldByName('Size').Asstring+'字节';
          finally
            MyFile.Free;
            Stream.Free;
          end;
        end;
          if FileExists('c:\temp.DOC') then
             DeleteFile('c:\temp.DOC');
          if FileExists('c:\temp.tmp') then
          begin
            RenameFile('c:\temp.tmp', 'c:\temp.DOC');
            Doc_ole.CreateObjectFromFile('c:\temp.DOC',False);
            Doc_ole.Run;
    希望你会满意
      

  6.   


    procedure TComposetypeForm.DbToWord(ViewADOQuery:TADOQuery;TitleFile,AnswerFile:String);//从数据库到Word临时文件
    var
        TitleSize,AnswerSize:integer;TitleBuffer,AnswerBuffer:PChar;
        TitleFileStream,AnswerFileStream:TFileStream;TitleBlobStream,AnswerBlobStream:TStream;
    begin
        if ViewADOQuery.RecNo>0 then
        begin
        TitleFileStream:=TFileStream.Create(MainForm.ApplicationPath+'Title.tmp',fmCreate);
        AnswerFileStream:=TFileStream.Create(MainForm.ApplicationPath+'Answer.tmp',fmCreate);
        with ViewADOQuery do
        begin
            open;
            TitleBlobStream:=CreateBlobStream(FieldByName('Title')as TBlobField,bmRead);
            TitleSize:=TitleBlobStream.Size;TitleBuffer:=AllocMem(TitleSize);
            AnswerBlobStream:=CreateBlobStream(FieldByName('Answer')as TBlobField,bmRead);
            AnswerSize:=AnswerBlobStream.Size;AnswerBuffer:=AllocMem(AnswerSize);
            Try
                TitleBlobStream.Read(TitleBuffer^,TitleSize);TitleFileStream.Write(TitleBuffer^,TitleSize);
                AnswerBlobStream.Read(AnswerBuffer^,AnswerSize);AnswerFileStream.Write(AnswerBuffer^,AnswerSize);
            finally
                TitleBlobStream.Free;TitleFileStream.Free;
                AnswerBlobStream.Free;AnswerFileStream.Free;
            end;
        end;
        if FileExists(TitleFile) then DeleteFile(TitleFile);
        if FileExists(MainForm.ApplicationPath+'Title.tmp') then Renamefile(MainForm.ApplicationPath+'Title.tmp',TitleFile);
        if FileExists(AnswerFile) then DeleteFile(AnswerFile);
        if FileExists(MainForm.ApplicationPath+'Answer.tmp') then Renamefile(MainForm.ApplicationPath+'Answer.tmp',AnswerFile);
        End;
    end;
      

  7.   

    这个问题我也正愁着呢!
    不知那位高手说的李维的ADO那本书是哪一本?请明示,谢谢。