PowerBuilder:在空闲时断开数据库连接

时间:2013-03-19 13:38:43

标签: powerbuilder

我在PowerBuilder中有一个应用程序,许多用户在几个小时内保持打开状态。 有时,操作会忘记提交;因此,某些表会无限期地锁定,从而阻止每个人工作。 我试图将所有提交到位,但在这么大的应用程序中调试它真的很困难。 我想在应用程序空闲时断开数据库连接。这并不难,但我的问题是,当触摸鼠标或键盘时,应用程序需要重新打开连接。我怎么做?每次空闲时关闭应用程序是不可接受的。

2 个答案:

答案 0 :(得分:2)

首先,我建议你采取简单的方法,并开始关闭所有这些交易。如果您有未提交的内容,除了锁定问题之外,您不知道发生的下一个语句是执行COMMIT还是ROLLBACK,现在还不需要。我的经验是,这种调查总是会带来围绕交易的其他问题。这个问题可能比锁定更大。

至于重新连接,如果你要走这条路线(显然不是我的第一选择),我建议另外一种设计:当你需要接下来时连接。基本上(如果您要将代码封装在事务对象中的函数内):

IF DBHandle() = 0 THEN CONNECT using THIS;

如果您有像PFC这样的框架,那么您可能只有几个地方可以对此进行编码。如果你没有一个框架来封装像检索和更新这样的工作,那么你就是希望你做到了。通过在每次按键和鼠标移动时检查数据库连接,仍然可能比降低性能更好。

祝你好运,

特里。

答案 1 :(得分:0)

捕获mousemove和key事件。当其中一个发生火灾时,发出一个CONNECT;声明。

请参阅:

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc37781_1150/html/psref/BFCCFFGH.htm