передача параметров в хранимые процедуры классического ASP - PullRequest
0 голосов
/ 16 июня 2011

Я задавал подобный вопрос раньше и, хотя я пытался исправить свой предыдущий код, теперь я получаю сообщение об ошибке: «Аргументы имеют неправильный тип, находятся вне допустимого диапазона или конфликтуют друг с другом ». Я хочу передать один символ в качестве параметра для запроса к базе данных, а затем использовать набор записей для печати на веб-странице. Мой классический код asp ниже

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

Также моя хранимая процедура ниже -

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 + '%'

1 Ответ

0 голосов
/ 16 июня 2011

Возможно, вы добавляете параметр дважды. Попробуйте заменить:

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

только с:

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

Отредактировано, поскольку ваш комментарий предлагает использовать числовые значения для adChar (129) и adParamInput (1) со страницы W3Schools CreateParameter .

...