webForumDet fria alternativet
Logga in / Bli medlem

Operation is not allowed when the object is closed...

ASP

9 svar · 249 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Trådstart#1

Fattar inte. När jag kör den identiskt lika frågan i Query Analyzer så funkar det jättebra (som det skall) men på ASP-sidan så får jag felmeddelandet på fetad rad.

set connection = server.createobject("adodb.connection")
connection.Open "Provider=sqloledb;Data Source=mssql.server.se;User Id=jag;Password=jesus;"
set rs = connection.execute("my_sp 1, 8, 'Hej du glade', 'ART', 1855")
[b]If not rs.eof then[/b]
...
Medlem sedan juni 200032 967 inlägg
#2

Hur ser proceduren ut?

Medlem sedan okt. 20041 556 inlägg
#3

Faktum är att det funkar om jag kör parameteriserade frågor och sätter variabel @sex,@sju som OUTPUT (adParamInputOutput) upptill i sp'n, men det funkar inte om jag deklarerar dem nedanför (röd & fet)

CREATE PROCEDURE my_sp
	(	
		@ett integer = 0,
		@tva integer = 9999,
		@tre varchar(200),
		@fyra varchar(3) = 'Hej',
		@fem decimal = 1.5,
		[b]@sex uniqueidentifier OUTPUT,
 		@sju int OUTPUT[/b]
	)

AS
	[b][red]--DECLARE @sex uniqueidentifier[/red][/b]
	Set @sex = (SELECT guid FROM tabellen WHERE id = SCOPE_IDENTITY())

	/*
	
	Stor insert med select (Inputparametrar används här)
	
	*/
	
	[b][red]--DECLARE @sju int[/red][/b]
	Set @sju = @@ROWCOUNT

SELECT @sex, @sju
RETURN

Det känns fånigt att skicka med null-värden om jag inte behöver några inputs på de variablarna.

Medlem sedan juni 200032 967 inlägg
#4
  1. SET NOCOUNT ON överst i proceduren. Annars får du också tillbaka ett tomt recordset "över" recordsetet med datat.
  2. Räcker inte det, prova att ta bort return sist i proceduren.

mvh

Medlem sedan okt. 20041 556 inlägg
#5

Nu har jag lagt till SET NOCOUNT ON överst
Och tagit bort RETURN
Ändrat om i deklarationerna.
Resultatet blir bra/rätt i QA.

ASP-sidan skrev:

Procedure or function my_sp has too many arguments specified

Medlem sedan okt. 20041 556 inlägg
#6

Var deklarerar jag enbart outputparametrarna i SP'n?

Medlem sedan juni 200032 967 inlägg
#7

Provat att ta bort outputparametrarna också ur SP:n?
Eller måste du ha dem också?

Medlem sedan okt. 20041 556 inlägg
#8

Nej jag har tagit bort dem och lagt deklarationerna inne i SP'n i stället.
Nej jag behöver inte ha dem där.

Medlem sedan okt. 20041 556 inlägg
#9

Men som sagt om jag lägger dem där(uppe) och skickar med ett nullvärde så funkar frågan...

Medlem sedan okt. 20041 556 inlägg
#10

Skulle ju inte vara adParamInputOutput utan bara adParamOutput, så funkade det.

259 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)