VB6下Command获取SQL存储过程返回值


最近在给老程序(VB6+SQL2005)添加数据库备份、恢复功能。以前没写是因为太懒。在使用ado Command调用存储过程sp_addumpdevice时,发现存储过程有返回值(0——成功,1——失败)。但按照之前的书写格式,把结果声明了一个参数,放在所以传入参数的后面,也提示错误。就提示@cntrltype未声明为OUTPUT,则形参需要输出的类似错误。

查看了sp_addumpdevice定义,发现@cntrltype、@devstatus这两个参数都可以为空,不用传入。

度娘了一圈,也没有发现怎么解决这个问题。我还按照sp_addumpdevice的定义,声明了5个参数,但提示错误。

没想到瞎写了一下,居然了没报错。

正确代码如下:

P_cmd.CommandType = adCmdStoredProc
   P_cmd.CommandText = "sp_addumpdevice"
   
   With P_cmd
      
      .Parameters.Append .CreateParameter("@res", adInteger, adParamReturnValue, , i)
      
      .Parameters.Append .CreateParameter("@devtype", adChar, adParamInput, 20, "disk")
      .Parameters.Append .CreateParameter("@logical", adChar, adParamInput, 40, "mybakdev1")
      .Parameters.Append .CreateParameter("@physical", adChar, adParamInput, 260, Trim(txtData_Backup(0).Text))
      
      .Execute
      '<释放参数>
      .Parameters.Delete ("@devtype")
      .Parameters.Delete ("@logical")
      .Parameters.Delete ("@physical")
      
      .Parameters.Delete ("@res")
   End With
   

 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值