如何在PowerBuilder脚本中设置SQL Server的ARITHABORT会话属性
在PowerBuilder脚本中设置SQL Server的ARITHABORT会话属性
要在PowerBuilder应用中配置SQL Server的ARITHABORT会话属性,核心是在数据库连接建立后,通过执行SQL语句设置当前会话的该属性,具体实现方式如下:
方法:连接成功后执行SET语句
ARITHABORT是SQL Server的会话级属性,仅对当前数据库连接生效,因此需要在每次成功建立连接后执行配置语句。
示例代码(应用Open事件)
假设使用PowerBuilder默认事务对象SQLCA,可在应用启动的Open事件中添加以下代码:
// 先完成数据库连接(此处省略连接代码,需确保SQLCA已成功连接) IF SQLCA.SQLCode = 0 THEN // 设置ARITHABORT为ON(如需设置为OFF,替换为'SET ARITHABORT OFF') EXECUTE IMMEDIATE 'SET ARITHABORT ON'; // 验证设置是否成功 IF SQLCA.SQLCode <> 0 THEN MessageBox("配置失败", "ARITHABORT设置出错: " + SQLCA.SQLErrText) END IF END IF
其他场景适配
- 若使用自定义事务对象,只需将代码中的
SQLCA替换为你的事务对象名称。 - 如需为特定数据窗口的会话单独设置,可在数据窗口的
RetrieveStart事件中执行相同的EXECUTE IMMEDIATE语句。
注意事项
ARITHABORT的设置会影响SQL Server查询行为,例如使用索引视图、计算列索引时,SQL Server要求该属性必须为ON才能正常使用这些对象。- 确保应用使用的数据库账号具备执行
SET ARITHABORT语句的权限,避免因权限不足导致配置失败。 - 该设置仅对当前会话有效,若应用重新建立数据库连接,需再次执行配置语句。
内容的提问来源于stack exchange,提问作者keerthana keerthi
相关产品推荐
相关产品推荐

