VB6下的ado Command调用存储过程,读取返回值

最近在给老程序(VB6+SQL2005+水晶报表)添加备份、恢复数据库功能。真心是手动备份数据库太劳累抓狂,且显得不专业,呵呵。调用sp_addumpdevice过程时,发生这SP有返回值,度娘了一圈,很少有提出存储过程返回值如何在ADO Command中如何引用。

瞎写的代码,总是提示:@cntrltype未声明为OUTPUT,但形参还需要输出,等等。

但打开sp_addumpdevice存储过程定义,发现@cntrltype及@devstatus可为空,不需要传值。头疼了10分钟。

无意间瞎写,则不报错了。偷笑

正确代码如下:

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


  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值