webForumDet fria alternativet

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

9 svar · 249 visningar · startad av Travoni

TravoniMedlem sedan okt. 20041 556 inlägg
#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]
...
@ndersMedlem sedan juni 200032 969 inlägg
#2

Hur ser proceduren ut?

TravoniMedlem 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.

@ndersMedlem sedan juni 200032 969 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

TravoniMedlem 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

TravoniMedlem sedan okt. 20041 556 inlägg
#6

Var deklarerar jag enbart outputparametrarna i SP'n?

@ndersMedlem sedan juni 200032 969 inlägg
#7

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

TravoniMedlem 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.

TravoniMedlem 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...

TravoniMedlem sedan okt. 20041 556 inlägg
#10

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

131 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)