Страница 1 из 1

problem with InputOutput parameters in ADO

Добавлено: 24 фев 2003, 09:25
Солнышко
есть хранимая процедура

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 параметр либо инпут, либо оутпут у меня не возникало.

Шо делать? как дальше жыть?

Добавлено: 24 фев 2003, 10:28
Boo
скорее всего действительно коннекшн плохой или не установлен. у меня напр. этот кусок кода проходит без проблем (VB+W2K+MSSQL2K). кстати, результат надо искать в cmd.Parameters(0).

Добавлено: 24 фев 2003, 10:58
Солнышко
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.

Добавлено: 24 фев 2003, 11:04
Солнышко
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)

Добавлено: 24 фев 2003, 12:34
Boo
Солнышко писал(а): set @ID = null
return(0)
странно, у меня все идет как по маслу. может это в MSSQL7 такая проблема, или у тебя ADO другой?

Добавлено: 24 фев 2003, 12:42
Солнышко
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:43
Солнышко
gm, a kak udalit' messagu?

Добавлено: 24 фев 2003, 12:46
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:

Добавлено: 24 фев 2003, 12:50
папа Карло
Солнышко писал(а):gm, a kak udalit' messagu?
какую? там кстати транслит есть ;)

Добавлено: 24 фев 2003, 13:28
Солнышко
'какую? там кстати транслит есть

[trn]Translit - rulez!

a lyubuyu svoyu messagu, v poryadke samomoderirovaniya[/trn]