我在数据库中定义了如下一个存储过程请问在vb中怎样调用(即是在一form上有text1,text2用于输入的,而text3用于输出两参数运算的结果)。
create procedure Param
@m int,
@n int,
@result int output
as
if @m>0 and @n>0
set @result=@m*@n
else
set @result=0
create procedure Param
@m int,
@n int,
@result int output
as
if @m>0 and @n>0
set @result=@m*@n
else
set @result=0
Dim cmd As New adodb.Command
Dim ParamTemp As adodb.Parameter
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=servername;User Id=sa;PassWord=***;Initial Catalog=testdb"
cn.CursorLocation = adUseClient
cn.Open
cmd.CommandText = "Param"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = cn
Set ParamTemp = cmd.CreateParameter("m1", adInteger, adParamInput)
ParamTemp.Value = CInt(text1.Text)
cmd.Parameters.Append ParamTemp
Set ParamTemp = cmd.CreateParameter("m2", adInteger, adParamInput)
ParamTemp.Value = CInt(text2.Text)
cmd.Parameters.Append ParamTemp
Set ParamTemp = cmd.CreateParameter("m3", adNumeric, adParamOutput)
cmd.Parameters.Append ParamTemp
cmd.Execute
text3.Text = ParamTemp.Value
Set cmd = Nothing
cn.Close
Set cn = Nothing
create procedure Param
@m int,
@n int,
@result1 int output,
@result2 int output
as
if @m>0 and @n>0
begin
set @result1=@m*@n
set @result2='test'
end
else
begin
set @result1=0
set @result2='fail'
end
Dim ParamTemp2 As adodb.Parameter ....
....
Set ParamTemp1 = cmd.CreateParameter("m3", adNumeric, adParamOutput)
cmd.Parameters.Append ParamTemp1
Set ParamTemp2 = cmd.CreateParameter("m4", adNumeric, adParamOutput)
cmd.Parameters.Append ParamTemp2
cmd.Execute
text3.Text = ParamTemp1.Value
text4.Text = ParamTemp2.Value
Set cmd = Nothing
cn.Close
Set cn = Nothing
改为
Set ParamTemp2 = cmd.CreateParameter("m4", adVarChar, adParamOutput)