欢迎投稿

今日深度:

PB+MS SQL+触发器必须注意,pbsql

PB+MS SQL+触发器必须注意,pbsql


PB+MS SQL+触发器必须注意:


若触发器存在两笔以上的返回值,比如两条update 语句,被误判为数据有改变,存盘不成功。

提示:

Row changed between retrieve and update.

No changes made to database.

 

 所以MS SQL 触发器必须统一处理为:

         触发器开始加:

if@@ROWCOUNT=0 Return --提高效能

setnocount on --不返回统计笔数,可减少网络频繁响应,提高效性能;避免误判为数据有改变(sybase不存在此类问题)

结束加:

setnocount off



在pb与sql开发的数据库中,是否使用触发器,存储过程.

PB没用过,好象是数据库开发工具,是开发工具哦,不是使用工具,可以编写基于SQL数据库的程序,所以触发器,存储过程当然在SQL里面建立了
 

PB不可以动态创建带变量的SQL触发器?

messagebox("",ls_mysql)
//提示框出来后,ctrl+c复制出提示框内容,然后ctrl+v到查询分析器,看看有没有问题

sqlto.autocommit = true
Execute Immediate :ls_sql;

If sqlto.sqlcode = 0 Then
messagebox("","成功!")
Else
messagebox("","失败!"+sqlto.sqlerrtext)
End If
sqlto.autocommit = false

如果提示失败,在真正确认PB中的SQL脚本没错的情况下,检查
sqlto.sqlerrtext错误提示是什么,然后对症下药
如果还是不能,看看数据库是否有修改触发器的权限
----------------------
+" select @autoid = cast(rdrecords.autoid as varchar) from rdrecords,inserted where rdrecords.cdefine33 = cast(inserted.rdsid as varchar)"&
+"update purbillvouchs set purbillvouchs.rdsid = cast(@autoid as int(4)) from inserted
=================
就这个地方,update前面没有空格,拼出来的语句肯定有问题啦!!!
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/4278.html NewsArticle PB+MS SQL+触发器必须注意,pbsql PBMS SQL触发器必须注意: 若触发器存在 两笔以上的返回,比如 两条 update 语句,被误判为 数据有改变,存盘不成功。 提示: Row changed between retrieve and u...
评论暂时关闭