|
|
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
Происходит следущее. Есть файл в котором создаются параметры типа 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 11:01:25 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
А что передается в sCustomerID? И не попытаться ли это сперва привести к int: CInt(sCustomerID) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 11:10:14 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
Передается то число .....но вот передется вот так <input type="text" name="CustomerID" size="10"> Может как то надо по другому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 11:13:03 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
Мы тоже были уверены, что передаем число, пока VarType() не показал, что это строка.. Кстати, почему размерность у параметра 10? вроде бы всегда у smallint было 2 байта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 11:39:13 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
Уже исправил. Но все равно не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 11:57:49 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
А не попытаться ли для названий параметров использовать опущенный символ "@"? Точно ли процедура возвращает рекордсет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 12:17:41 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
ДА процедура все возвращает. Я же говорб как только ночал работать не с nvarchar то пошла такая фигня. А где его опускать в процедуре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 12:20:38 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
Очередность Parameters.Append соответствует очередности параметров в объявлении процедуры? Обязательно должно соответствовать, невзирая на названия. Насчет символа "@": очень сомневаюсь, что в процедуре имеется параметр "City". Скорее всего, там "@City". Так почему на клиенте Вася именуется Ася? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 12:28:17 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
В любом случае имеет смысл поймать запрос в профайлере и попытаться его выполнить в QA. Тогда всё станет предельно ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 12:30:14 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
сделайте 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 12:33:24 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
имена реально нужны только если вы хотите какие-то параметры забирать по именам, типа cmd("City"), вполне ведь можно обойтись cmd(0) все равно ведь указывать их нужно в том же порядке, как они в процедуре идут, так что с именами можете не волноваться особо, на них он никогда не ругался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 12:37:17 |
|
||
|
ASP + ADO.Ошибка при передаче параметров?
|
|||
|---|---|---|---|
|
#18+
А переменная adSmallInt точно прописана? В ASP вроде встроенных констант нет, а вставить файл abovbs.inc можно и забыть.. Просто 2 не пробовали? Да, а чем не устраивает rs = conn.open("exec ProcName " & sCustomerID) если нужен рекордсет и параметры обратно передавать не нужно? Насчет символа "@": очень сомневаюсь, что в процедуре имеется параметр "City". Скорее всего, там "@City". Так почему на клиенте Вася именуется Ася? У нас все без этого работало, а вот порядок добавления параметров действительно имеет значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 12:42:07 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32056285&tid=1819782]: |
0ms |
get settings: |
12ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
108ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 283ms |
| total: | 488ms |

| 0 / 0 |
