Delphi XE2中的IntraWeb 12的数据库,会话和持久性
我正在使用IntraWeb应用程序搜索有关数据库连接的信息(在我的案例中为Firebird).
我特别需要知道在带有LockDataModule函数的TDataModule上使用数据库或使用UserSessionUnit上的数据库所涉及的差异. 我可能最糟糕的是必须连接到一些旧的paradox数据库,我需要一个可以处理它的结构(我知道我必须生成一个基于WebApplication.AppID来处理会话的文件夹).最糟糕的是…… 提前感谢您提供给我的任何信息或有用链接^^ 解决方法
方案1 – 您在Intraweb应用程序向导中未选中“池数据连接”
在此方案中,向导将创建ServerController,UserSession但不是DataModule.您将数据库,会话和数据集组件放在UserSession上. 每当新用户连接到您的网站时,都会创建一个新的UserSession实例,并建立与数据库的连接.当ServerController.SessionTimeOut由于用户不活动而到期时,UserSession将被销毁,并且与数据库的特定连接将被切断. 对于30个并发用户,此模型可能适合您,并且应该保证在不使用网站时将切断所有数据库连接. 方案2 – 您在Intraweb应用程序向导中检查“池数据连接” 除了ServerController和UserSession之外,向导还将创建一个空的DataModule.您将数据库,会话和数据集组件放在DataModule上. ServerModule上有一个TIWDataModulePool组件,它具有PoolCount属性. 当您的应用程序启动时,它会创建DataModule的PoolCount实例,每个实例都与数据库建立连接.由于您的页面需要数据库访问,因此它们会调用LockDataModule和UnlockDataModule来临时使用池中的一个DataModule实例. 当应用程序关闭时,池中的DataModule实例将被销毁,并且它们与数据库的连接将被关闭. 当每个用户的开放数据库连接超出数据库服务器的功能时,此模型是合适的.对于仅连接到FireBird数据库的30位用户,我认为不需要它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |