我用Delphi 7.0 做了一个Web Service 服务程序,数据库为SQL Server 2000。为ISAPI模式,生成动态链接库(.dll)。发布在IIS 6.0中
问题:如果我在TWebModule 中添加TADOConnection控件连接数据库和TADOQuery查询数据库,我在要发布接口函数(比喻接口函数为fcuntion GetStudentInfo(AID:AnsiString):AnsiString;stdcall)中
调用TWebModule 中的TADOQuery控件查询数据。不行。
如果我在GetStudentInfo函数中 动态 创建TDataMoudle或TSoapDataModule 在这个两个类中添加TADOConnection连接数据库
和用TADOQuery查询数据将查询到的数据返回给客户端。这个时候客户端可以用GetStudentInfo这个接口函数获得数据。如果客户端每次调用GetStudentInfo这个接口函数获得数据,那么服务器中GetStudentInfo函数每次都要连接数据库一次,然后断开。如果有几千个客户端调用GetStudentInfo这个函数,我在IIS中发布的服务程序死掉了,即使不死掉,那么查询数据速度岂不是非常慢。提示:如果用WAD模式,在 WAD 中增加一个 DataModule 来放数据访问控件或放用TWebModule 中,接口函数不用每次连接数据库,直接调用DataModule 或TWebModule 的TADOConnection来连接数据库,进行数据查询返回给客户端,是没什么问题的。