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


猜你喜欢

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