在ADO中,Parameter对象是Command命令对象的一个子集.
Command对象的CreateParameter方法和Parameters集合:创建1个新的Parameter对象,如果CommandText(命令)是带参数的SQL Server存储过程,可用此方法创建参数对象,格式:
    Set parameter对象= command对象.CreateParameter(对象名name,参数类型type,输入/输出参数direction,参数长度size,参数值value)
其中,Type指定对象值的数据类型如adInteger,adVariant等;Direction参数指定参数类型,可选值有adParamUnknown未知;adParamInput输入参数;adParamoutput输出参数;adParamInputOutput输入/输出参数;adParamReturnValue是一个返回值参数。
Size参数指定对象值的最大长度。
Value:对象的值。
用CreateParameter方法仅在内存中创建参数对象,并不真正包含进Command对象中,要用命令对象中Parameters集合的Append方法添加上,才算真正建立。格式:Command对象.Parameters.Append Parameter对象变量。
我们通常在打开SQL Server上带参数的存储过程时使用此方法传送所需参数,例如:
Dim cn as ADODB.Connection
Dim cmd as ADODB.Command
Dim rst as ADODB.Recordset
Dim param as ADODB.Parameter
Set cn=New ADODB.Connection
cn.Open “driver={SQL Server};server=www.abc.com;uid=sa;pwd=848484;
database=pubs”
Set cmd=New ADODB.Command
cmd.ActiveConnection=cn
cmd.CommandText=”mystoredinsqlserver”  存储过程的名称。
cmd.CommandType=adCmdStoredProc
Set param=cmd.CreateParameter(“par1”,adBoolean,adParamReturnValue)
cmd.Parameters.Append param
Set param=cmd.CreateParameter(“par2”,adInteger,adParaminput,,Val(text1.text))
cmd.Parameters.Append param  下面只用一行也可以达到同样的添加参数目的。
cmd.Parameters.Append cmd.CreateParamter(“par3”,adInteger,adParamOutput)
Set rst=cmd.Execute
Msgbox rst(0).Value
Msgbox cmd(“par1”)
Msgbox cmd(“par3”)
这里,三个参数中,par1是一个返回值,par3是一个输出参数,可以在程序中显示出来。

解决方案 »

  1.   

    Set cmd = New Command
            cmd.ActiveConnection = CnnSql
            cmd.CommandType = adCmdStoredProc
            '写入存储过程名称
            cmd.CommandText = "HRoomInformationAdd"
             '返回值
            cmd.Parameters.Append cmd.CreateParameter("return", adTinyInt, adParamReturnValue)
            '定义输入
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomNo", adChar, , 20)
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomName", adChar, , 50)
            
            cmd.Parameters.Append cmd.CreateParameter("@HiBuildId", adChar, , 20)
            cmd.Parameters.Append cmd.CreateParameter("@HiFloorId", adChar, , 10)
            
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomPic", adChar, , 50)
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomBuildArea", adDouble)
            
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomUseArea", adDouble)
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomApportion", adDouble)
            
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomFixUp", adChar, , 50)
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomType", adChar, , 20)
            
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomState", adChar, , 10)
            
            cmd.Parameters.Append cmd.CreateParameter("@HiRentalUnitPrice", adDouble)
            cmd.Parameters.Append cmd.CreateParameter("@HiRentalMonth", adDouble)
            
            cmd.Parameters.Append cmd.CreateParameter("@HiSellUnitPrice", adDouble)
            cmd.Parameters.Append cmd.CreateParameter("@HiSellRoom", adDouble)
            
            cmd.Parameters.Append cmd.CreateParameter("@HiRoomMem", adChar, , 255)
            cmd.Parameters.Append cmd.CreateParameter("@HiOperatorId", adChar, , 6)
            '传入参数附值
            cmd("@HiRoomNo") = Trim(txtHiRoomNo.Text)
            cmd("@HiRoomName") = Trim(txtHiRoomName.Text)
            
            cmd("@HiBuildId") = Trim(txtHiBuildId.Text)
            cmd("@HiFloorId") = Trim(txtHiFloorId.Text)
            
            cmd("@HiRoomPic") = ""
            cmd("@HiRoomBuildArea") = Trim(txtHiRoomBuildArea.Text)
            
            cmd("@HiRoomUseArea") = Trim(txtHiRoomUseArea.Text)
            cmd("@HiRoomApportion") = Trim(txtHiRoomApportion.Text)
            
            cmd("@HiRoomFixUp") = Trim(txtHiRoomFixUp.Text)
            cmd("@HiRoomType") = Trim(txtHiRoomType.Text)
            
            cmd("@HiRoomState") = Trim(txtHiRoomState.Text)
            
            cmd("@HiRentalUnitPrice") = Trim(TXTDRentalUnitPrice.Text)
            cmd("@HiRentalMonth") = Trim(txtDRentalMonth.Text)
            
            cmd("@HiSellUnitPrice") = Trim(TXTDSellUnitPrice.Text)
            cmd("@HiSellRoom") = Trim(txtDSellRoom.Text)
            
            
            cmd("@HiRoomMem") = Trim(txtHiRoomMem.Text)
            cmd("@HiOperatorId") = Trim(POperatorId)
            '开始运行
            cmd.Execute