Hallo Gecko,
Lass doch die Arbeit Firebird machen, dazu hast du ihn (den Vogel
) doch.
Für deinen Fall dürfte diese SP reichen.
Es wird nachgesehen ob der Begriff schon vorhanden ist und entsprechend reagiert.
Wichtig ist ein Index auf das Feld "BEGRIFF" für den indizierten Zugriff.
SQL-Code:
CREATE PROCEDURE SP_SPAM_IU (
BEGRIFF VARCHAR(30))
RETURNS (
ANZAHL INTEGER)
AS
DECLARE VARIABLE ID INTEGER;
BEGIN
BEGRIFF = UPPER(BEGRIFF);
SELECT ID, ANZAHL FROM SPAM WHERE (BEGRIFF = :BEGRIFF) INTO :ID, :ANZAHL;
IF (ID is not NULL) THEN
BEGIN
UPDATE SPAM SET ANZAHL = :ANZAHL +1
WHERE (ID = :ID);
END ELSE
BEGIN
INSERT INTO SPAM (
BEGRIFF,
ANZAHL)
VALUES (
:BEGRIFF,
1);
ANZAHL = 1;
END
SUSPEND;
END
alex