传递参数到存储过程的传统的ASP [英] passing parameters into stored procedures classic asp

查看:664
本文介绍了传递参数到存储过程的传统的ASP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我以前问过类似的问题,虽然我试图解决我的previous $ C $词现在用一个错误参数的错误类型的结束,超出可接受的范围或在与另一个冲突。我想通过一个单一的字符作为参数来查询数据库,然后使用记录打印出来的网页。我传统的ASP code低于

 设置objCon =的CreateObject(ADODB.Connection)
设置objRS =的CreateObject(ADODB.Recordset)
设置objComm =的CreateObject(ADODB.Command)objCon.ConnectionString =供应商= SQLOLEDB.1;密码= XXXX;坚持安全信息= TRUE;用户ID = XXXX;初始目录=电影;数据源= XXXX-PC
objCon.open objCon.ConnectionStringobjComm.ActiveConnection = objCon.ConnectionString
objComm.CommandText =Paging_Movies
objComm.CommandType = adCmdStoredProc设置objParameter = objComm.CreateParameter
objParameter.Name =alphaChar
objParameter.Type = adChar
objParameter.Direction = adParamInput
objParameter.Value =一个objComm.Parameters.Append objParameter设置objRs = objComm.Execute

此外我的存储过程如下 -

  CREATE PROCEDURE Paging_Movies
@alphaChar CHAR(1)

如果@alphaChar ='#'
    从电影中选择*,其中像电影'[^ A-Z]%'
其他
    选择电影*,其中像电影@alphaChar +'%'


解决方案

也许你要添加的参数两次。试图取代:

  objComm.ActiveConnection = objCon.ConnectionString
objComm.CommandText =Paging_Movies
objComm.CommandType = adCmdStoredProc设置objParameter = objComm.CreateParameter
objParameter.Name =alphaChar
objParameter.Type = adChar
objParameter.Direction = adParamInput
objParameter.Value =一个设置objParameter = objCommand.CreateParameter(alphaChar,adChar,_
    adParamInput,一)objComm.Parameters.Append objParameter

只有

  objCommand.CreateParameter(alphaChar,129,1,1,A)

编辑为您的意见建议用于 adChar 的数值(129)和 adParamInput (1) W3Schools的CreateParameter页。

I've asked a similar question before and although I've attempted to fix my previous code i now end up with an error "Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another". I want to pass a single character as a parameter to query a database then use recordset to print out to a webpage. My classic asp code is below

Set objCon = CreateObject("ADODB.Connection")
Set objRS = CreateObject("ADODB.Recordset")
set objComm = CreateObject("ADODB.Command")

objCon.ConnectionString = "Provider=SQLOLEDB.1;Password=xxxx;Persist Security Info=True;User ID=xxxx;Initial Catalog=Movies;Data Source=xxxx-PC"
objCon.open objCon.ConnectionString

objComm.ActiveConnection = objCon.ConnectionString
objComm.CommandText = "Paging_Movies"
objComm.CommandType = adCmdStoredProc

Set objParameter = objComm.CreateParameter
objParameter.Name = "alphaChar"
objParameter.Type = adChar
objParameter.Direction = adParamInput
objParameter.Value = "a"

objComm.Parameters.Append objParameter

set objRs = objComm.Execute

Also my stored procedure is below -

CREATE PROCEDURE Paging_Movies
@alphaChar char(1)
AS
if @alphaChar = '#'
    select * from Movies where movies like '[^a-z]%'
else
    select * from Movies where movies like @alphaChar + '%'

解决方案

Perhaps you're adding the parameter twice. Try to replace:

objComm.ActiveConnection = objCon.ConnectionString
objComm.CommandText = "Paging_Movies"
objComm.CommandType = adCmdStoredProc

Set objParameter = objComm.CreateParameter
objParameter.Name = "alphaChar"
objParameter.Type = adChar
objParameter.Direction = adParamInput
objParameter.Value = "a"

Set objParameter = objCommand.CreateParameter ("alphaChar", adChar, _
    adParamInput, "a")

objComm.Parameters.Append objParameter

with just:

objCommand.CreateParameter ("alphaChar", 129, 1, 1, "a")

Edited as your comment suggests to use the numeric values for adChar (129) and adParamInput (1) from the W3Schools CreateParameter page.

这篇关于传递参数到存储过程的传统的ASP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆