|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2004/4/24 18:40:54 |
标题: |
斑竹,请不要铲除我的帖子啊,真的很急,谢谢! |
浏览:1150 |
|
加入我的收藏 |
楼主: |
有这样的存储过程和触发器 create procedure proc1 as begin trian delete table1 where sno=001 if @@error=0 and @@rowcount=1 then commit trian else rooback trian go
create triggle triggle11 on table1 for delete if ( ) then rollback go
现在就是有这样一个问题:当执行存储过程proc1。起动了触发器 triggle11 有可能在触发器里执行了rollback 这个动作,但是在存储过程proc1里如果有错误 又要执行rooback trian,那怎么办,因为一个事务,只能 rollback 一次啊 请问,那怎么办?
另外一个问题是: 在 sql 里 用这样的语句 给角色赋权限 grant{all| 语句[.....] to 用户 |角色[。。。。]
为了在delphi调用,我写了这样的存储过程
create proceudre proc2 @aa varchar(50), @bb varchar(50) as declare @cmd varchar(200) set @cmd='grant'+@aa+'to'@bb exec(@cmd)
//proc2 在sql server 里是 能够编译的
但是我在delphi里调用时出现这样的错: begin adoconnection1.execute('exectue proc2'+' '+trim(edit1.text)+','+trim(edit2.text)); end; 他提示的错误是:在‘,’附近有错误。 请问我的错是在那里?
各位大哥是不是看的很辛苦了,小弟还有一个问题的请教各位大哥
就是我用adoconnetion调用,sql server 的系统存储可以,但是用daostoredproc就不行。 存储过程是: sp_grantlogin 'windows 帐户' begin adoconnetion1.execute('execute sp_grantlogin'+' '+'[lsh\lsh18]') end; 这个可以
但是我用daostoredproc就不行。 begin adostoredproc1.procedurename:='sp_grantlogin'; adostoredproc1.close; adostoredproc1.parameters.refresh; adostoredproc1.parameters[1].value:='[lsh\lsh18]'; adostoredproc1.prepare:=true; adostoredproc1.xecpro; end; 可是就是不行,这个问题我做了很久了。没有效果
谢谢各位大哥!
----------------------------------------------
lsh |
作者: |
|
2004/4/24 20:41:05 |
1楼: |
大家,一定要认真看,我急啊 谢谢!!
----------------------------------------------
lsh
|
作者: |
|
2004/4/24 22:23:27 |
2楼: |
不是斑竹删除了你的帖子,而是因为黑客一黑,当前帖子丢了引起的,不要冤枉好人嘛!
----------------------------------------------
大家好,我是Flyers。
是Delphi.Net版主,小弟会尽力解决大家的问题!谢谢支持!
|
|