假如有这样的一种实际情况:
    有三台电脑,分别是DB Server、App Server、Client。在DB Server上,装有大型数据库软件,如MS SQL Server或Oracle。数据库中,有一数据表,表中一个字段存有某类文件的存放路径和文件名,这些文件实际存在于DB Server电脑上面的一个文件夹中。
    现在,Client发出数据请求,要从DB中取得一些文件。请求到达APP Server,再到达DBMS。小弟的问题是:DB Server上的文件,如何返回到Client中?
--------------------------------------------------------------------------
    说明几点:
    1.需要注意的是,DBMS与APP Server不在同一台电脑上;
    2.由于文件很多,而且大,不可能放在数据库中,只能在数据库中存文件路径,所以,大家也不要提什么“把文件直接放在数据库中”的建议;
    3.文件的保密性很重要,所以,不能用共享文件夹的方式;
----------------------------------------------------------------------------    
    有朋友提出,可以在DBMS里面写存储过程,在存储过程中调用COM对象,在COM对象中装入文件,并以流的形式返回。当Client的请求到达App Server以后,App Server调用此存储过程,返回数据,请问是否可行?如可行,是做何做的?
    如不可行,请大家赐教其它的方法。

解决方案 »

  1.   

    Client发出的请求是如何与App Server互联的?
    你不如在DB Server上再建一个Server程序,然后可以通过Socket进行互联,文件传送。
    在存储过程里面调用COM对象一般是行不通的,无法进行流的传递。
      

  2.   

    或者再来个毒一点的,在数据库服务器上开一个WEB服务,让客户端去下载,这样更省事了,嘎嘎
      

  3.   

    你不如在DB Server上再建一个Server程序,然后可以通过Socket进行互联,文件传送。=========呵。。如果这样的话,那我就直接用DICOM标准的服务类了。。 DICOM标准中定义的服务类,就是基于TCP/IP,用Socket通信的。
      

  4.   

    还是在DB Server中再建一个APP Server比较简单。