Avatar billede bleze Nybegynder
07. januar 2004 - 15:51 Der er 4 kommentarer og
1 løsning

Hardcore Stored Proc spørgsmål

Jeg har 2 storedprocedures...

1: Returnerer et dataset (from en temp tabel men det er ikke væsenligt vil jeg mene).

2. Skal bruge datasettet som 1 returnerer i en CURSOR.

Noget ala:

SP2:
...
DECLARE #OnlineCheckAvailability_AvailCur CURSOR FAST_FORWARD FOR

  EXEC GenerateAvailability @StartDate, @EndDate, 0, 0, @SystemDate, 0  -- kald til SP 1 med diverse parametre

OPEN #OnlineCheckAvailability_AvailCur
...

Man kan ikke bruge EXEC på denne måde.

Jeg har både kigget på at bruge;

DECLARE #OnlineCheckAvailability_AvailCur CURSOR

OPENROWSET

OPENQUERY

sp_executesql

men kan ikke fået noget til at virke eller finde hoved eller hale i det, så jeg ville se om der var nogen der var klogere end mig ;)
Avatar billede zedios Nybegynder
07. januar 2004 - 16:23 #1
En mulighed kunne være:

CREATE TABLE #GenerateAvailability
(
  kolonne liste svarende til resultatsættet fra din SP (GenerateAvailability) ....
)

INSERT INTO #GenerateAvailability
EXEC @StartDate, @EndDate, 0, 0, @SystemDate, 0 

DECLARE #OnlineCheckAvailability_AvailCur CURSOR FAST_FORWARD FOR SELECT * FROM #GenerateAvailability

..
brug af cursorn
..

DROP TABLE #GenerateAvailability  -- må først ske når du er færdig med at benytte cursoren ..
Avatar billede cyb Nybegynder
08. januar 2004 - 10:08 #2
Har du tjekket din server opsætning, du skal huske at storedproceduren skal have lov til at kalde den anden stored procedure. Prøv evt. at tjekke at du har hakket af i "Allow trigger to be fired witch fire other triggers" (under proberties på serveren, og vælg fanebladet 'Server settings').
Avatar billede bleze Nybegynder
08. januar 2004 - 10:31 #3
zedios. ikke lige den løsning jeg var ude efter men jeg godtager den da jeg ikke har tid til at rode mere med det. OPENROWSET og OPENQUERY kunne have givet mig en direkte cursor istedet for at jeg skulle lave endnu en tabel...

cyb. storedprocs og triggers hænger mig bekendt ikke sådan sammen som du lægger ud. Jeg kan godt kalde en anden storedproc fra en storedproc, det var ikke det der var spørgsmålet... men ellers tak.

zedios, hvis du lægger et svar så får du points.
Avatar billede zedios Nybegynder
08. januar 2004 - 13:03 #4
Sorry Bleze

Jeg mener at have set en mere elegant løsning på tilsvarende problem som involvere OPENDATASOURCE, men kan ikke like lokalisere den p.t
Avatar billede bleze Nybegynder
08. januar 2004 - 19:35 #5
Jeg har implementeret løsningen og det kører ok. Det er ikke det optimale da man jo skal kan have temp tabel oprettet og hælde data over i, men jeg kan leve med det da det ikke er store mængde (måske max et par 100 rækker)

Tak
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