Einzelnen Beitrag anzeigen

alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#13

Re: Was mache ich falsch? Firebird rattert wie irre auf der

  Alt 10. Jun 2007, 09:37
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
Alexander
  Mit Zitat antworten Zitat