日期:2014-05-18  浏览次数:20387 次

asp调用存储过程(二个进参,三个出参)
存储过程 pro_A
create pro pro_A
declare @str varchar(1000)
declare @NID int
declare @resulta int output
declare @resultb int output
declare @resultc int output
as
。。。。。。。。
return

请问asp怎样调用该存储过程 请写一个具体事例。
要在页面输出“有“@resulta”个你已经录入”“本次录入中的信息由@resultb个系统中已经存在多个,未允许录入”
“本次共录入了@resultc个信息”
请务必写一个具体的事例。

------解决方案--------------------
SQL code

create pro pro_A
declare @str varchar(1000)
declare @NID int
declare @resulta int output
declare @resultb int output
declare @resultc int output

存储过程不是你这样写的,过程的参数是不需要Declare来定义的.
Create Pro pro_A
@str Varchar(1000), 
@NID int,
@resulta Int OutPut,
@resultb Int OutPut,
@resultc Int OutPut
As 
Begin
  这里是内容
End

------解决方案--------------------
VB code

    SET Comm = Server.CreateObject("ADODB.COMMAND")

    WITH Comm

        .ActiveConnection =   strCon '数据库连接字符串
        .CommandText      =   "pro_A" '存储过程名字
        .CommandType      =   4 
        .Prepared         =   True '开启预编译
        
        .Parameters.Append .CreateParameter("@EveryPage",3,1,4,EveryPage)           '入参,每页数据条数
        .Parameters.Append .CreateParameter("@TotalCount",3,4,4)                    '出参,总记录数
        .Parameters.Append .CreateParameter("@TotalPageCount",3,4,4)                '出参,总页数

        SET Rs = .Execute

    END WITH
    Rs.Close '取返回参数要先关闭数据集
    TotalCount = Comm.Parameters("@TotalCount")
    TotalPageCount = Comm.Parameters("@TotalPageCount")

------解决方案--------------------
SqlConnection conn=new SqlConnection ("连接串");
conn.open();
SqlCommand cmd=new SqlCommand("pro_A",conn);
//定义命令对象类型
cmd.CommandType=CommandType.SotredProcedure;
//添加输入类型参数
cmd.Parameters.Add("@Str1", SqlDbType.NVarChar, 30).Direction = ParameterDirection.InputOutput;
//添加输出类型参数
cmd.Parameters.Add("@Str1", SqlDbType.NVarChar, 30).Direction = ParameterDirection.Output;
conn.close();