Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ASP + ADO.Ошибка при передаче параметров? / 12 сообщений из 12, страница 1 из 1
08.10.2002, 11:01:25
    #32056231
Klopiki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
Происходит следущее.
Есть файл в котором создаются параметры типа

cmd.Parameters.Append cmd.CreateParameter("City",adVarWChar,adParamInput,50,sCity)

и происходит передача, задействуется процедура. Все шло нормально при nvarchar, пока не потребывалось передать smallint и smalldatetime.

делаю типа

cmd.Parameters.Append cmd.CreateParameter("CustomerID",adSmallInt,adParamInput,10,sCustomerID)

начинает ругаться
Error Type:
(0x80040E07) на set rs=cmd.Execute
...
Рейтинг: 0 / 0
08.10.2002, 11:10:14
    #32056235
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
А что передается в sCustomerID? И не попытаться ли это сперва привести к int: CInt(sCustomerID) ?
...
Рейтинг: 0 / 0
08.10.2002, 11:13:03
    #32056237
Klopiki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
Передается то число .....но вот передется вот так
<input type="text" name="CustomerID" size="10">
Может как то надо по другому?
...
Рейтинг: 0 / 0
08.10.2002, 11:39:13
    #32056253
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
Мы тоже были уверены, что передаем число, пока VarType() не показал, что это строка.. Кстати, почему размерность у параметра 10? вроде бы всегда у smallint было 2 байта.
...
Рейтинг: 0 / 0
08.10.2002, 11:57:49
    #32056269
Klopiki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
Уже исправил. Но все равно не работает
...
Рейтинг: 0 / 0
08.10.2002, 12:17:41
    #32056281
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
А не попытаться ли для названий параметров использовать опущенный символ "@"?

Точно ли процедура возвращает рекордсет?
...
Рейтинг: 0 / 0
08.10.2002, 12:20:38
    #32056282
Klopiki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
ДА процедура все возвращает. Я же говорб как только ночал работать не с nvarchar то пошла такая фигня. А где его опускать в процедуре?
...
Рейтинг: 0 / 0
08.10.2002, 12:28:17
    #32056284
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
Очередность Parameters.Append соответствует очередности параметров в объявлении процедуры? Обязательно должно соответствовать, невзирая на названия.

Насчет символа "@": очень сомневаюсь, что в процедуре имеется параметр "City". Скорее всего, там "@City". Так почему на клиенте Вася именуется Ася?
...
Рейтинг: 0 / 0
08.10.2002, 12:30:14
    #32056285
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
В любом случае имеет смысл поймать запрос в профайлере и попытаться его выполнить в QA. Тогда всё станет предельно ясно.
...
Рейтинг: 0 / 0
08.10.2002, 12:33:24
    #32056286
ivan999
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
сделайте Refresh
и посмотрите какие параметры
на самом деле хочет эта процедура
можете приятно удивиться


Function Debug_WriteCMDParameters(cmd,isResfresh)
dim cmdparam
on error resume next
if isResfresh then
cmd.Parameters.Refresh
response.write "cmd parameters refreshed<BR>"
end if
response.write cmd.Parameters.Count & "<BR>"
for each cmdparam In cmd.Parameters
Response.Write cmdparam.Name
Response.Write ","& cmdparam.Type
Response.Write ","& cmdparam.Direction
Response.Write ","& cmdparam.Size
Response.Write ","& CStr(cmdparam.Value)
Response.Write "<BR>"
next
on error goto 0
Debug_WriteCMDParameters=true
end function


вообще, может быть несовпадение типов
например, тип данных smalldatetime
у SQL и ADO означает несколько разные вещи
попробуйте указать такой совместимый тип данных,
из которого SQL server может сделать
implicit convertation

например, в данном случае можно использовать adInteger,
а вместо smalldatetime вполне сойдет datetime
...
Рейтинг: 0 / 0
08.10.2002, 12:37:17
    #32056288
ivan999
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
имена реально нужны только если вы хотите
какие-то параметры забирать по именам,
типа cmd("City"), вполне ведь можно обойтись cmd(0)

все равно ведь указывать их нужно в том же порядке,
как они в процедуре идут,
так что с именами можете не волноваться особо,
на них он никогда не ругался...
...
Рейтинг: 0 / 0
08.10.2002, 12:42:07
    #32056289
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP + ADO.Ошибка при передаче параметров?
А переменная adSmallInt точно прописана? В ASP вроде встроенных констант нет, а вставить файл abovbs.inc можно и забыть.. Просто 2 не пробовали?
Да, а чем не устраивает
rs = conn.open("exec ProcName " & sCustomerID)
если нужен рекордсет и параметры обратно передавать не нужно?
Насчет символа "@": очень сомневаюсь, что в процедуре имеется параметр "City". Скорее всего, там "@City". Так почему на клиенте Вася именуется Ася?
У нас все без этого работало, а вот порядок добавления параметров действительно имеет значение.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ASP + ADO.Ошибка при передаче параметров? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]