Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

Re: Ein paar SQL Fragen ( stored procedure )

  Alt 21. Jun 2005, 13:56
Zitat von Sven Janssen:
Ne moment. Mein Programm soll darauf gar keine Berücksichtigung finden.
So solls auch sein.

Zitat von Sven Janssen:
Dadurch soll entschieden werden ob ein insert oder update ausgeführt werden soll.
Der Ansatz ist richtig, aber der Denkfehler ist der, daß du versuchst die Anzahl der Records zu ermitteln, anstatt ob gerade der betreffende Record schon da ist ! Dabei spielen jetzt allerdings die IDs eine entscheidende Rolle.

Sofern jeder DS eine eindeutige Nr. hat, dann brauchst Du nur...

Beispiel ist besser:

SQL-Code:
CREATE PROCEDURE PREISSP (
    ID_KUNDE INTEGER,
    VP DECIMAL(15,2),
    ID_ART INTEGER)
AS
DECLARE VARIABLE AENDERN INTEGER;
begin
  AENDERN = -1;
  select ID from PREIS where (ID_KUNDE= :ID_KUNDE) and
                             (ID_ART= :ID_ART)
  into :AENDERN;
  if (AENDERN < 0) then begin
    insert into PREIS (ID_KUNDE,ID_ART,VP)
           values (:ID_KUNDE,:ID_ART,:VP);
  end
  else begin
    update PREIS set VP=:VP
    where (ID_ART= :ID_ART) and (ID_KUNDE= :ID_KUNDE);
  end
  suspend;
end
Es geht um eine Kunden-Preistable. Hat ein Kunde für einen Artikel einen Preis, so ist die ID <> 0 => Update. Ist keiner da, dann bleibt Aendern auf -1 stehen und es wird ein Insert gemacht. Bingo !
Gruß
Hansa
  Mit Zitat antworten Zitat