Gå til innhold

[LØST] Lagrede Prosedyrer i MS SQL


Anbefalte innlegg

GO

CREATE PROC Sjekkunde

@Kun_Etternavn CHAR(25),

@Kun_Fornavn CHAR(25)

AS

 

IF EXISTS (SELECT * FROM Kun_Kunde WHERE Kun_Etternavn = @Kun_Etternavn AND Kun_Fornavn = @Kun_Fornavn)

RETURN-1

ELSE

RETURN 0

GO

 

 

 

CREATE PROC SettinnKunde @Kun_Etternavn CHAR(25), @Kun_Fornavn CHAR(25)

AS

DECLARE @Kun_Etternavn_eksisterer CHAR(25)

DECLARE @Kun_Fornavn_eksisterer CHAR(25)

 

EXEC Sjekkunde @Kun_Etternavn_eksisterer, @Kun_Fornavn_eksisterer

 

IF @Kun_Etternavn_eksisterer = 0 AND @Kun_Fornavn_eksisterer = 0

INSERT INTO Kun_Kunde (Kun_Etternavn, Kun_Fornavn)

VALUES (@Kun_Etternavn, @Kun_Fornavn)

ELSE PRINT 'Denne kunden er allerede registrert i databasen'

 

 

 

Hva er feilen med denne prosedyren her? Noen som kan hjelpe? Neewbie... :ermm:

Endret av bennster
Lenke til kommentar
Videoannonse
Annonse

Ad SettInnKunde så er det en ganske god dose med logiske feil. Det du ønsker å gjøre her er noe i retning av (uten å ha testet koden):

 

CREATE PROC SettinnKunde @Kun_Etternavn CHAR(25), @Kun_Fornavn CHAR(25)
AS
DECLARE @Kun_eksisterer int

EXEC @Kun_eksisterer = Sjekkunde @Kun_Etternavn, @Kun_Fornavn

IF @Kun_eksisterer = 0 
INSERT INTO Kun_Kunde (Kun_Etternavn, Kun_Fornavn)
VALUES (@Kun_Etternavn, @Kun_Fornavn)
ELSE PRINT 'Denne kunden er allerede registrert i databasen'

 

Aller helst burde print være byttet ut med en return -1 eller tilsvarende for å gi en statuskode. Meldingsutveksling med print er ikke alltid veldig effektivt.

Endret av roac
Lenke til kommentar
Ad SettInnKunde så er det en ganske god dose med logiske feil. Det du ønsker å gjøre her er noe i retning av (uten å ha testet koden):

 

CREATE PROC SettinnKunde @Kun_Etternavn CHAR(25), @Kun_Fornavn CHAR(25)
AS
DECLARE @Kun_eksisterer int

EXEC @Kun_eksisterer = Sjekkunde @Kun_Etternavn, @Kun_Fornavn

IF @Kun_eksisterer = 0 
INSERT INTO Kun_Kunde (Kun_Etternavn, Kun_Fornavn)
VALUES (@Kun_Etternavn, @Kun_Fornavn)
ELSE PRINT 'Denne kunden er allerede registrert i databasen'

 

Aller helst burde print være byttet ut med en return -1 eller tilsvarende for å gi en statuskode. Meldingsutveksling med print er ikke alltid veldig effektivt.

7365126[/snapback]

 

 

 

Dette funket jo som bare brille! Takker hjerteligst for hjelpen... Du har gjort en mann med skoleprosjekt glad! :thumbup::dribble:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...