现在在我机器的D盘上有一个(AAA.TXT)的文件,我要把它保存到数据库中的某个表中如何保存??而且我还可以再把这个文件从数据库中读出来还是以(AAA.TXT)为文件名保存到硬盘的别的文件夹中。注意:我是要把整个文件保存进去,并不是单纯的保存文件的内容,要保证存进去的文件格式和读出来的文件格式一样。

解决方案 »

  1.   

    用二进制可以,procedure TForm1.Button4Click(Sender: TObject);
    var FileSave: olevariant;
       F: file;
       F2: file;
       FromSize, ToSize: integer;
       buf: array[0..2048] of char;
    begin
          assignfile(f, ExtractFilepath(application.ExeName) + 'Temp.dsj');
          assignfile(f2, SaveDialog1.FileName);
          reset(f, 1);
          rewrite(f2, 1);
          blockwrite(f2, buf, sizeof(buf), ToSize);
          repeat
          
             blockread(f, buf, sizeof(buf), FromSize);
        
             blockwrite(f2, buf, sizeof(buf), ToSize);
             
          until (FromSize = 0) or (FromSize <> ToSize);
          closefile(f);
          closefile(f2);end;
      

  2.   

    我不想分步保存,如果文件是一个Word文档,里面的内容都排版排得好好的,我再读出来的时候不是很麻烦吗,我还要重新排版吗???我就是想把整个文件保存进去,如果以后就是我把文件删了,当我要的时候我还可以从数据库中再读出来呀。我没有哪位老兄有这方面的经验呀,最好能贴出相应的代码???
      

  3.   

    metro() 兄:我用你的代码试了一下,我把一个文件从一个文件夹下保存到另一个文件夹下,文件的内容就全变了,在原来的内容前面和后面加了一大段代码,这是怎么回事呀(我用的是一个TXT文件测试的)
    还有没有哪位老兄有其它的办法呀,是不是这问题真的像我想象的那么难吗??现在我数据库中一个表(FileTable)中有一个(File)字段,现在我就是要把某一个文件保存到这个字段下面,乍么保存呀????
      

  4.   

    File 字段用 Blob 类型,可以保存二进制数据流(不管什么数据也好,文件也好,最后总是二进制数据流)。
    FileName 字段用文本类型,保存文件名。如果你不怕麻烦,当然也可以把 File 和 FileName 合为一个 Blob 字段