请问在VB中如何获得SQL server返回值(Sp_GetAppLock)

endstar 2005-07-07 11:03:39
如题.

sp_getapplock执行成功后有一个返回值 (return @result),如何在VB中用command对象读取?

谢谢
...全文
201 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxyan_35 2005-07-14
  • 打赏
  • 举报
回复
Dim Prm as new Parameter
dim iReturnv as integer
dim strCode as string

with Cmd
Set Prm = .CreateParameter("@DisCode", adVarChar, adParamInput, 10, strCode)
.Parameters.Append Prm
Set Prm = .CreateParameter("@Return", adInteger, adParamOutput, , iReturnv)
.Parameters.Append Prm
.Execute , , adCmdStoredProc

iReturnv = .Parameters("@Return")
end with
MagicianLiu 2005-07-14
  • 打赏
  • 举报
回复
在给你一个存储过程的例子,差不多都包括了,返回记录集,输入输出参数,在加上上面的返回值。
这个是我以前写ASP分页的存储过程的例子。
set mc_cmd = Server.CreateObject("ADODB.Command")
mc_cmd.ActiveConnection = conn
mc_cmd.CommandType=4
mc_cmd.CommandText = "effc_list "
mc_cmd.Parameters.Append mc_cmd.CreateParameter("@dep",3,1,50,mc_dep)
mc_cmd.Parameters.Append mc_cmd.CreateParameter("@key",200,1,50,key)
mc_cmd.Parameters.Append mc_cmd.CreateParameter("@pagesize",3,1,50,psize)
mc_cmd.Parameters.Append mc_cmd.CreateParameter("@page",3,1,50,page)
mc_cmd.Parameters.Append mc_cmd.CreateParameter("@star",200,1,50,start)
mc_cmd.Parameters.Append mc_cmd.CreateParameter("@end",200,1,50,endt)
mc_cmd.Parameters.Append mc_cmd.CreateParameter("@total",3,2,,0)
mc_cmd.Parameters.Append mc_cmd.CreateParameter("@totalpage",3,2,,0)
set Rs =Server.CreateObject("ADODB.Recordset")
Set Rs=mc_cmd.Execute()
mc_cmd.Execute()
total=mc_cmd.Parameters("@total")
totalpage=mc_cmd.parameters("@totalpage")
MagicianLiu 2005-07-14
  • 打赏
  • 举报
回复
我查到了
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Set con = New ADODB.Connection
con.open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Pubs;Data Source=."
Set cmd = New ADODB.Command
cmd.ActiveConnection = con
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "myp"
cmd.Parameters.Append cmd.CreateParameter("@ReturnValue", adInteger, adParamReturnValue)
cmd.Execute
debug.print cmd.Parameters(0).Value
MagicianLiu 2005-07-12
  • 打赏
  • 举报
回复
用个笨办法
set rs=con.execute("declare @intReturn Int Exec @intReturn=存储过程 '参数1','参数2','参数3' Select @intReturn")
debug.print rs(0)
如果参数中有输出参数,需要在定义一个变量!!
yiliao 2005-07-11
  • 打赏
  • 举报
回复
将@result在SQL中定义成OUTPUT型,就可以获取了
daisy8675 2005-07-10
  • 打赏
  • 举报
回复
别在这里打注意了,我用平常的办法执行根本不行

昨天问zjcxc,他讲,如果你能保证在VB中间同一会话,我就能解决...

faint....同一会话...
endstar 2005-07-09
  • 打赏
  • 举报
回复
楼上的...参数如何输入
MagicianLiu 2005-07-07
  • 打赏
  • 举报
回复
用个笨办法
set rs=con.execute("declare @intReturn Int Exec @intReturn=存储过程 Select @intReturn")
debug.print rs(0)
ReViSion 2005-07-07
  • 打赏
  • 举报
回复
用一个记录集来返回吧
daisy8675 2005-07-07
  • 打赏
  • 举报
回复
mark

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧