Avatar billede micker Praktikant
02. december 2001 - 18:16 Der er 1 løsning

Procedurer til opgave

Hejsa

Jeg er lidt newbie omkring interbase. Jeg er igang med at lave en opgave med et bibliotek, og har i den forbindelse lavet 2 procedurer. Den første checker om bogen er udlånt, og returnere så er svar, og den anden søger for at registrere et udlån. Her kommer koden:

Procedure 1.
SET TERM !! ;

CREATE PROCEDURE ER_UDLAAN(BNR INTEGER) RETURNS (RESULTAT VARCHAR(10))
AS
DECLARE VARIABLE DUMMY INTEGER;
BEGIN
DUMMY = 0;
FOR
SELECT BOG_NR
FROM UDLAAN
WHERE BOG_NR = :BNR AND
SLUT_DATO > CURRENT_TIMESTAMP
INTO :DUMMY
DO IF (DUMMY = 0) THEN
  RESULTAT = \'OK\';
  ELSE
  RESULTAT = \'UDLAANT\';
SUSPEND;
END!!

SET TERM ; !!

Det virker når bogen er udlånt, men ikke når den er hjemme. Der må altså være noget iven med dette:
IF (DUMMY = 0). Hvordan skriver man. Hvordan skriver man, om variablen er lig null?

2 Procedure
SET TERM !! ;

CREATE PROCEDURE LAAN_BOG(LNR INTEGER,BNR INTEGER)
RETURNS(RESULTAT VARCHAR(10))
AS
BEGIN
FOR SELECT RESULTAT FROM ER_UDLAAN(:BNR)
INTO :RESULTAT
DO
IF (RESULTAT = \'OK\') THEN
    BEGIN
      INSERT INTO UDLAAN (BOG_NR, LAANER_NR, START_DATO, SLUT_DATO)
      VALUES (:LNR,:BNR,CURRENT_TIMESTAMP, CURRENT_TIMESTAMP + 31);
      WHEN SQLCODE 0 DO
        BEGIN
          RESULTAT = \'OK\';
          SUSPEND;
        END
      WHEN ANY DO
        BEGIN
          RESULTAT = \'EJ OK\';
          SUSPEND;
        END
    END
ELSE
SUSPEND;

END!!

SET TERM ; !!

Denne virker heller ikke. Hvad kan der være i vejen??
Avatar billede micker Praktikant
02. december 2001 - 21:05 #1
Har selv fundet fejlene.
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