Avatar billede sykofanten Nybegynder
07. december 2006 - 20:44 Der er 11 kommentarer og
1 løsning

Problem med stored procedure

http://sykofanten.5u.com/storedprocedure.txt http://img46.imageshack.us/img46/5699/dbbj1.jpg

hvorfor virker det ikke?
Skal helst bruge hjælp indenfor de næste timer, da jeg skal aflevere projekt i morgen.
Avatar billede kalp Novice
07. december 2006 - 20:47 #1
man har ikke adgang til tekst filen
Avatar billede kalp Novice
07. december 2006 - 20:48 #2
og du må gerne sige hvad problemet er også..
Avatar billede sykofanten Nybegynder
07. december 2006 - 20:54 #3
du har skam adgang til tekstfilen hvis du kopierer linket og paster det ind i et andet vindue :D
Avatar billede sykofanten Nybegynder
07. december 2006 - 20:55 #4
problemet er at den ikke sletter de tabeller den skal slettet. Den gør faktisk intet, da der opstår en fejl et eller andet sted.
Avatar billede sykofanten Nybegynder
07. december 2006 - 21:10 #5
hmm lukker tråden igen kl 22, da jeg skal skrive 20 siders programmeringsrapport i nat :(
Avatar billede kalp Novice
07. december 2006 - 22:31 #6
okay.. ligner ikke helt det som jeg selv laver desværre..

kan f.eks ikke forstå hvorfor du sammenligner med @Get_kunde_Id
når du sender årstal til din procedure.. så burde du vel tjekke med årstal
Avatar billede sykofanten Nybegynder
07. december 2006 - 23:00 #7
ja det er også en fejl jeg har rettet.

koden ser nu sålades ud... og jeg holder den åben til 01 istedet :D

create procedure deleteGamlekunder

@aar datetime
AS
DECLARE @Get_kunde_Id bigint

DECLARE Get_kunde_Id_iterator CURSOR FOR
select    kunde.kunde_id
from    kunde
where    year(kunde_oprettelses_dato) < @aar
and    kunde.kunde_id = (select privatkunde.privatkunde_id from privatkunde where privatkunde.privatkunde_id = kunde.kunde_id)
or    kunde.kunde_id = (select foreningskunde_id from foreningskunde where foreningskunde.foreningskunde_id = kunde.kunde_id)

begin /* procedure */

OPEN Get_kunde_Id_iterator
FETCH NEXT FROM Get_kunde_Id_iterator INTO @Get_kunde_Id
print '@@FETCH_STATUS :'
print @@FETCH_STATUS

WHILE (@@FETCH_STATUS = 0) /* @@FETCH_STATUS : 0 hvis fetch lykkedes, -1 hvis der er fejl, -2 hvis der ikke returneres flere */
BEGIN  /* WHILE*/
print 'ID :'
print @Get_kunde_Id
Begin transaction
    DELETE FROM privatkunde WHERE privatkunde.privatkunde_Id = @get_kunde_id
    DELETE FROM foreningskunde WHERE foreningskunde.foreningskunde_id = @get_kunde_id
    DELETE FROM aktiv where aktiv.kunde_kunde_id_oid = @get_kunde_id
    DELETE FROM laaneansoegning where laaneansoegning.kunde_kunde_id_oid = @get_kunde_id
    DELETE FROM kunde WHERE year(kunde_oprettelses_dato) < @aar
commit transaction
    FETCH NEXT FROM Get_kunde_Id_iterator INTO @Get_kunde_Id
END  /* WHILE*/

CLOSE Get_kunde_Id_iterator
deallocate Get_kunde_Id_iterator /* cursor fjernes fra RAM */

end /* procedure */

execute deletegamlekunder 2008

og fejlen jeg får er:

@@FETCH_STATUS :
0
ID :
4076

(1 row(s) affected)


(0 row(s) affected)


(3 row(s) affected)


(0 row(s) affected)

Server: Msg 547, Level 16, State 1, Procedure deleteGamlekunder, Line 30
DELETE statement conflicted with COLUMN REFERENCE constraint 'PRIVATKUNDE_FK1'. The conflict occurred in database 'master', table 'PRIVATKUNDE', column 'PRIVATKUNDE_ID'.
The statement has been terminated.
ID :
4077

(1 row(s) affected)


(0 row(s) affected)


(0 row(s) affected)


(1 row(s) affected)

Server: Msg 547, Level 16, State 1, Procedure deleteGamlekunder, Line 30
DELETE statement conflicted with COLUMN REFERENCE constraint 'FORENINGSKUNDE_FK1'. The conflict occurred in database 'master', table 'FORENINGSKUNDE', column 'FORENINGSKUNDE_ID'.
The statement has been terminated.
ID :
4078

(0 row(s) affected)


(1 row(s) affected)


(0 row(s) affected)


(1 row(s) affected)


(3 row(s) affected)
Avatar billede sykofanten Nybegynder
07. december 2006 - 23:07 #8
hmm kiggede lige efter i tabellerne alligevel, og den har faktisk fjernet privatkunde og foreningskunde også

http://sykofanten.5u.com/db2.JPG

men hvorfor skriver den så den fejl? :D og kan jeg få den til at lade være med det? :D:D
Avatar billede sykofanten Nybegynder
07. december 2006 - 23:08 #9
og ja linket virker... man skal bare markere urllen i browseren og trykker enter :D
Avatar billede kalp Novice
08. december 2006 - 09:19 #10
beklager... hoppede i seng i går da jeg havde været på arbejde hele dagen, men ventede ellers på dig lidt:S

håber da din rapport blev ordnet
Avatar billede sykofanten Nybegynder
09. december 2006 - 19:32 #11
smid et svar, så får du pointsne :) Fik fixet det
Avatar billede kalp Novice
10. december 2006 - 15:17 #12
Det får du her=)
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