我将图片或PDF文件存储在数据库中(Blobpb字段),现要读取这些文件并显示在TWebBrowser中。
存储时,用的方法是:AdoQuery1.Parameters.ParamByName('blob').LoadFromFile(Edit1.Text, ftBlob)。
请大家帮帮忙,谢谢了!

解决方案 »

  1.   

    我采用了先将数据读出在临时文件中,关闭时再删除这个临时文件,我用的是DeleteFile()函数,但是,PDF文件不能删除。请问有没有可以直接删除像PDF这类文件的函数,或有什么方法可以删除这类文件!谢谢!
      

  2.   

    我又测试了一下,应该不是DeleteFile()函数的问题,应该是PDF文件没有关闭;
    我在网上找到了一个关闭外部程序的代码:  HWndClose := FindWindow(nil, pChar(ProName));  //HWndClose : HWND; ProName为要关闭的外部程序名;
      if HWndClose <> 0 then
        SendMessage(HWndClose, WM_CLOSE, 0, 0);但是仍然无法关闭PDF,不知道是不是PDF的应用程序名字错了,还是方法不对,请大家帮帮忙,谢谢了!
      

  3.   

    在WebBrowser中显示PDF文件的应该是ActiveX控件,不一定是某个程序。另外,你再看看FindWindow的API声明。HWND FindWindow(      
        LPCTSTR lpClassName,
        LPCTSTR lpWindowName
    );
      

  4.   

        当我在WebBrowser中打开PDF等类型的文档后,要对这个文件进行存储、删除之类的操作都会出错,因为这个文档还处于打开状态;
    但是,gif和txt文件没有遇到这个问题。是不是应该先将PDF等文档关闭,或者关闭这个进程,但是用程序应该如何做呢?    请各位大虾帮帮忙!谢谢!
      

  5.   

    我换了一种方式,存的时候用内存流存,同时用本地文件路径显示,这样存的时候就与那个文件的打开与关闭无关了。
    但是读的时候怎么办呢?我不知道如何把内存流中的内容在WebBrowser中显示。
    请各位大虾帮帮忙!谢谢!
      

  6.   

    哈哈,问题解决了,在Destroy中将临时文件删除就好了!