forster2008 发表于 2015-9-23 12:17:30

PB12触发器的问题,Row changed between retrieve and update.

本帖最后由 forster2008 于 2015-9-23 12:18 编辑

您好,我是反应一个问题,有关PowerBuilder开发工具的问题,描述如下:

在修改单据,比如说删除明细行,在调用update更新保存的时候,明细表table1有触发器dbo.trg_table1_del,语法都无问题,在表table1的delete触发器中,有更新其他表inv1的数量,如果“更新其他表inv1的数量”满足条件,能更新到表inv1的行记录,这时程序能正确执行成功,不会报错;但是,如果“更新其他表inv1的数量”不满足条件,没有更新到表inv1的行记录,这时程序不能正确执行,就会报错,错误提示信息是“Row changed between retrieve and update. No changes made to database. datawindow的dberror事件的参数dberrcode返回-3”。奇怪了,同样的程序,在PB9无问题,升级到PB12以上就有问题了。
这个问题该处理,请答复我。
// PB12以上版本的数据库的连结参数 Profile cndb9 local。
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = <**********>
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='C20PC',PROVIDERSTRING='database=cndb9'"

此问题在 PowerBuilder Classic 12.1 Build 6639, PowerBuilder Classic 12.5.2 Build 5550, PowerBuilder Classic 12.6 Build 4058这三个版本都存在,我只下载了这三个版本的测试包软件。但在PowerBuilder 9.0.3 Build 8836无问题,能正常处理。

//PB9版本的数据库的连结参数 Profile cndb9 127.0.0.1
SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.Database = "cndb9"
SQLCA.LogPass = <**********>
SQLCA.ServerName = "127.0.0.1"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""


页: [1]
查看完整版本: PB12触发器的问题,Row changed between retrieve and update.

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com