Dar*_*orf 4 delphi session intraweb delphi-xe2
我正在使用IntraWeb应用程序搜索有关数据库连接的信息(在我的案例中为Firebird).
我特别需要知道在带有LockDataModule函数的TDataModule上使用数据库或使用UserSessionUnit上的数据库所涉及的差异.例如,如果没有用户使用服务器,我需要将数据库完全断开连接,并且最多连接30个用户.
我可能最糟糕的是必须连接到一些旧的paradox数据库,我需要一个可以处理它的结构(我知道我必须生成一个基于WebApplication.AppID来处理会话的文件夹).最糟糕的是......
提前感谢您提供给我的任何信息或有用链接^^
在这种情况下,向导会创建一个ServerController,UserSession但不是一个DataModule.您将数据库,会话和数据集组件放在UserSession.
每当新用户连接到您的网站时,UserSession都会创建一个新实例,并建立与数据库的连接.当ServerController.SessionTimeOut由于用户不活动而到期时,UserSession销毁并且与数据库的特定连接被切断.
对于30个并发用户,此模型可能适合您,并且应该保证在不使用网站时将切断所有数据库连接.
除了ServerController和UserSession向导将创建一个空DataModule.您将数据库,会话和数据集组件放在DataModule.
它上面ServerModule有一个TIWDataModulePool具有PoolCount属性的组件.
当您的应用程序启动时,它会创建每个应用程序与数据库建立连接的PoolCount实例DataModule.由于您的页面需要数据库访问,因此它们会调用LockDataModule并UnlockDataModule临时使用DataModule池中的一个实例.
当您的应用程序关闭DataModule时,池中的实例将被销毁,并且它们与数据库的连接将被关闭.
当每个用户的开放数据库连接超出数据库服务器的功能时,此模型是合适的.对于仅连接到FireBird数据库的30位用户,我认为不需要它.