PB不能动态创建带变量的SQL触发器吗?

[复制链接]
查看11 | 回复2 | 2010-5-12 02:01:13 | 显示全部楼层 |阅读模式
ls_mysql = "CREATE TRIGGER [PU_update_rdsid] ON [dbo].[PurBillVouchs] "&
+" FOR INSERT"&
+"AS"&
+" declare @cdefine33 varchar(255)"&
+" declare @rdsid varchar(10)"&
+" declare @autoid varchar(10)"&
+" select @cdefine33 = cdefine33 from inserted"&
+" if @cdefine33 like '%D'"&
+" begin"&
+" 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 where "&
+"purbillvouchs.id=inserted.id"&
+"end"
sqlto.autocommit = true
EXECUTE IMMEDIATE :ls_mysql using sqlto;
commit using sqlto;
sqlto.autocommit = false
已验证sql的语法没问题,就是PB这样写的话生成不了。请高手指导

回复

使用道具 举报

千问 | 2010-5-12 02:01:13 | 显示全部楼层
messagebox("",ls_mysql)//提示框出来后,ctrl+c复制出提示框内容,然后ctrl+v到查询分析器,看看有没有问题sqlto.autocommit = true Execute Immediate :ls_sql;
If sqlto.sqlcode = 0 Then messagebox("","成功!") Elsemessagebox("","失败!"+sqlto.sqlerrtext) End Ifsqlto.autocommit = false如果提示失败,在真正确认PB中的SQL脚本没错的情况下,检查sqlto.sqlerrtext错
回复

使用道具 举报

千问 | 2010-5-12 02:01:13 | 显示全部楼层
应该是语法的事,在引号前都加上空格就会行的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行