problem with InputOutput parameters in ADO

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Солнышко
Частый Гость
Сообщения: 18
Зарегистрирован: 18 фев 2003, 16:55
Откуда: Toronto

problem with InputOutput parameters in ADO

Сообщение Солнышко »

есть хранимая процедура

CREATE PROCEDURE [sp_MyProcedure]
@ID int = NULL OUTPUT
AS
set @ID = 1000
return(0)

прошу обратоть внимание, что параметр может равняться null, (чему он обычно и равняется). процедура вызывается следующим образом из VBScript:

Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn

cmd.CommandText = "sp_MyProcedure"
cmd.CommandType = 4 'adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@ID", 3, 3) 'adInteger, adParamInputOutput
cmd.Execute

выдается вот такая ошибка:
Connection is broken.

Подозреваю, что вся фигня связана с тем, что параметр = null i является инпут и оутпут параметром одновременно. проблем, когда null параметр либо инпут, либо оутпут у меня не возникало.

Шо делать? как дальше жыть?
Boo
Пользователь
Сообщения: 92
Зарегистрирован: 20 фев 2003, 00:41

Сообщение Boo »

скорее всего действительно коннекшн плохой или не установлен. у меня напр. этот кусок кода проходит без проблем (VB+W2K+MSSQL2K). кстати, результат надо искать в cmd.Parameters(0).
Аватара пользователя
Солнышко
Частый Гость
Сообщения: 18
Зарегистрирован: 18 фев 2003, 16:55
Откуда: Toronto

Сообщение Солнышко »

s connection vse v poryadke, poskol'ku, esli ya peredayu v proceduru ne NULL parametr ili ispol'zuyu adOutput vmesto adInputOutput v VBScript, vse rabotaet.
Аватара пользователя
Солнышко
Частый Гость
Сообщения: 18
Зарегистрирован: 18 фев 2003, 16:55
Откуда: Toronto

Сообщение Солнышко »

u menya etot kusok koda
(set @ID = null vmesto set@ID = 10 (k primeru))

vysyvaet oshibku

Error converting data type int to void type.



kstati ya ispol'zuyu VBScript+MS server 7.0 + Win2000

короче да, коннекшн протух. Потому как вот это работает no problems:

----------------------------
CREATE PROCEDURE [sp_MyProcedure]
@ID int = NULL OUTPUT
AS
set @ID = null
return(0)
Boo
Пользователь
Сообщения: 92
Зарегистрирован: 20 фев 2003, 00:41

Сообщение Boo »

Солнышко писал(а): set @ID = null
return(0)
странно, у меня все идет как по маслу. может это в MSSQL7 такая проблема, или у тебя ADO другой?
Аватара пользователя
Солнышко
Частый Гость
Сообщения: 18
Зарегистрирован: 18 фев 2003, 16:55
Откуда: Toronto

Сообщение Солнышко »

fig ego znaet

odnako, vse zarabotalo, esli pri sozdanii parametra, ukazyvat' yavno, chto on=NULL. povbyvav by :cry:

cmd.Parameters.Append cmd.CreateParameter("@ID", 3, 3, ,NULL) 'adInteger, adParamInputOutput
Последний раз редактировалось Солнышко 24 фев 2003, 12:44, всего редактировалось 1 раз.
Аватара пользователя
Солнышко
Частый Гость
Сообщения: 18
Зарегистрирован: 18 фев 2003, 16:55
Откуда: Toronto

Сообщение Солнышко »

gm, a kak udalit' messagu?
Аватара пользователя
Marmot
Графоман
Сообщения: 38345
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

Солнышко писал(а):fig ego znaet

odnako, vse zarabotalo, esli pri sozdanii parametra, ukazyvat' yavno, chto on=NULL. povbyvav by :cry:

cmd.Parameters.Append cmd.CreateParameter("@ID", 3, 3, ,NULL) 'adInteger, adParamInputOutput
"Дети Билли не любили,
Дети Билли больно били,
Билл обиды не забыл,
Он их "виндусом" побил.
" :lol:
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Солнышко писал(а):gm, a kak udalit' messagu?
какую? там кстати транслит есть ;)
Аватара пользователя
Солнышко
Частый Гость
Сообщения: 18
Зарегистрирован: 18 фев 2003, 16:55
Откуда: Toronto

Сообщение Солнышко »

'какую? там кстати транслит есть

[trn]Translit - rulez!

a lyubuyu svoyu messagu, v poryadke samomoderirovaniya[/trn]
Ответить