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
   



猜你喜欢

转载自blog.csdn.net/zhang_yling/article/details/77600240