Avatar billede mrpalermo Nybegynder
10. februar 2004 - 11:28 Der er 8 kommentarer og
1 løsning

Problemer med Stored procedure og ASP

Jeg ved ikke rigtig om det er den rigtige gruppe at oprette denne tråd, men nu gør jeg det alligevel.

Jeg har opdaget en temmelig træls ting i forbindelse med at afvikle en stored procedure i ASP.

Problemet er følgende:

Jeg har lavet en stored procedure som benytter #temp tabeller (eksempel):

Create Stored procedure
as
select 'en tekst' as mintekst
into #temp_text

select #temp_text

Afvikles denne SP i queryanalyseren, retunerer den 1 række som den skal. Afvikles SP´en via ASP siden, får jeg intet resultat tilbage. Æmdrer jeg SP´en til:

Create Stored procedure
as
select 'en tekst' as mintekst

...virker det efter henseende.

Hvorfor %#¤&% kan man ikke gemme resultater i #temp_tabeller, og efterfølgende retunerer værdien fra #temp_tabellen?

Er der nogen der kan hjælpe mig med det issue?
Avatar billede trer Nybegynder
10. februar 2004 - 12:48 #1
Det kan du også, men din sidste select er blot forkert.

Create Stored procedure
as
begin
select 'en tekst' as mintekst
into #temp_text

select *
from #temp_text
go
Avatar billede mrpalermo Nybegynder
10. februar 2004 - 13:28 #2
Ok, det var en skrivefejl.

Jeg har naturligvis skrevet det korrekt i min SP
Avatar billede trer Nybegynder
10. februar 2004 - 13:54 #3
Og du har angivet sp'en som i mit ex?  Det er ikke fordi du forsøger at afvikle en sp der opretter en temp tabel - og derefter forsøger i en separat query at læse fra temp tabellen?
Avatar billede mrpalermo Nybegynder
10. februar 2004 - 15:33 #4
Nej, desværre. Både oprettelse af temp tabel, og efterfølgende select sætning er i samme SP/query
Avatar billede trer Nybegynder
10. februar 2004 - 16:33 #5
Det burde fungere. Det er ikke blot fordi du returnerer flere recordsæt?

a la

Create Stored procedure x
as
begin
select 'en tekst' as mintekst
into #temp_text
select 1,*
from #temp_text
select 2,*
from #temp_text
go

?

Ellers prøv at ændre din #temp tabel til en tabel variabel.

declare @t table (tekst varchar(50))
insert into @t values('min tekst')
select * from @t

det giver i øvrigt også bedre performance...
Avatar billede mrpalermo Nybegynder
10. februar 2004 - 16:55 #6
Hej Trer.

Jeg har lige afprøvet dit sidste eks., men det giver samme resultat:
Query analyseren retunerer godt nok det den skal, men kaldes proceduren ude fra en ASP-side, er recordsettet tomt ( Recordset.state er lig 0 )

Hvis du har tid, så prøv det af på din egen maskine, og se om ikke jeg har ret!
Avatar billede mrpalermo Nybegynder
10. februar 2004 - 17:02 #7
Lige en slå-tanke:

Kan det mon skyldes at jeg ikke angiver brugeren i create table (dbo.) eller lign., og det samme når jeg atter kalder tabellen??
Jeg prøver lige at teste med dbo.xxxx
Avatar billede mrpalermo Nybegynder
10. februar 2004 - 17:09 #8
Nope, det var heller ikke det der skulle til
Avatar billede mrpalermo Nybegynder
10. februar 2004 - 17:47 #9
Der skulle blot sættes << set nocount on >> ind i SP én, så kører det som smurt.

Ellers mange tak for hjælpen, Trer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester