sp_password返回0(成功)或 1(失败)
代码如下:
cSQL="EXEC sp_password '123','321'"
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandText = csql
Set rs4 = cmd.Execute()没有OUTPUT参数,怎么获取返回值?
代码如下:
cSQL="EXEC sp_password '123','321'"
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandText = csql
Set rs4 = cmd.Execute()没有OUTPUT参数,怎么获取返回值?
解决方案 »
- 通过ADO以adLockOptimistic方式打开Access表后,所有编辑修改未经UpDate方法就立即显现且永久保存了。
- 大家来帮忙
- ActiveReport中如何动态地添加控件?
- 如何让光标在指定的地方闪
- vb 安装程序 在某些2000、XP下安装时报 path or file not found
- 那位作过SYRIS感應式讀卡控制器--型號: SY200NT2/4 系列的串口通讯
- 为什么打包完在安装时会缺文件啊?
- Modem传输数据问题。
- 高手帮忙呀~~DataGrid绑定以后,修改DataGrid的内容,如何才能也让数据库修改了?
- 如何使用sql语言更改表名
- 有沒有高手能幫忙把這段C++代碼改成VB的?
- 更改图片压缩代码成批处理?
intRst=0
.........
Set rs4 = cmd.Execute(intRst)
if rs4.state=adstateopen then rs4.close
Dim m_intRst As int
m_intRst=1 '初值:失败
With m_cmd
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = "sp_password"
'一下传参语句要根据自己的存储过程修改,其中 40/100为参数长度
.Parameters.Append .CreateParameter("@Column", adVarChar, , 40, m_StrColumn)
.Parameters.Append .CreateParameter("@Value", adVarChar, , 100, m_strValue)
rs4=.Execute(m_intRst)
if m_intRst=1 then
'失败处理
else
'成功处理
endif
End With
if @@@@RowCount=0 then
'失败处理
else
'有@@RowCount条记录修改成功
endif
.Parameters.Append .CreateParameter@new ", adVarChar, , 100, m_strValue)
我试了,执行SP_PASSWORD存储过程(rs4=.Execute(m_intRst))后m_intRst的值不变化,初值是多少,执行后还是多少。
可我以前的代码为什么行得通呢
查了帮助才知道,execute返回的就是@@RowCount
恰巧我用的也是他
-- FINALIZATION: RETURN SUCCESS/FAILURE --
if @@error <> 0
return (1)
raiserror(15478,-1,-1)
return (0) -- sp_password
觉得他是用return(1)表示有错误
并且抛出了一个错误
所以不用计较返回值
只要捕获这个错误,进行相应处理就行了