+ -
当前位置:首页 → 问答吧 → Delphi 开发Web Service 服务程序为ISAPI模式问题

Delphi 开发Web Service 服务程序为ISAPI模式问题

时间:2011-08-22

来源:互联网

我用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来连接数据库,进行数据查询返回给客户端,是没什么问题的。

作者: Calmness006   发布时间: 2011-08-22

你想要解决什么呀?

作者: cntigercat   发布时间: 2011-08-23

帮顶吧,没明白楼主要问什么。。。

作者: omagic   发布时间: 2011-08-23

这个一般要用连接池吧

作者: sonicer   发布时间: 2011-08-23

问题就是每次客户端向服务器发送请求时,也就是调用GetStudentInfo这个函数,那么服务器的接口函数每次都要连接SQL Server和断开SQL Server操作吗?(因为我在GetStudentInfo这个函数中都要动态创建一个DataMoudle这个类,然后在这个类中动态添加TADOConnection组件连接数据库)

作者: Calmness006   发布时间: 2011-08-23

也写isapi,不过没写成webservice

好像iis7以后对这种isapi不支持了?!
http://topic.csdn.net/u/20110707/12/198af8b3-4c11-4f20-9f2f-b88377d9912c.html
http://topic.csdn.net/u/20110810/13/33e7c370-ca88-465c-8a49-7bad1b14ccc9.html

作者: sz_haitao   发布时间: 2011-08-23

热门下载

更多