65.9K
CodeProject is changing. Read more.
Home

Combining Insert/Update to one Procedure

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0 vote)

Jul 15, 2010

CPOL
viewsIcon

4581

For Oracle: -------------------------------------------------------------------------------- -- DESCRIPTION -- Universal save -- PARAMETERS IN -- vTRYB: mode: (I)nsert/(D)elete/(U)pdate -- rc: record -- PROCEDURE zapiszObiekt(vTRYB IN...

For Oracle:
  --------------------------------------------------------------------------------
  -- DESCRIPTION
  --     Universal save
  -- PARAMETERS IN
  --     vTRYB:        mode: (I)nsert/(D)elete/(U)pdate
  --     rc:           record
  --
  PROCEDURE zapiszObiekt(vTRYB IN VARCHAR2, rc IN ad_atr_obiektow%ROWTYPE) IS
  BEGIN
    CASE
      WHEN vTRYB = 'D' THEN
        DELETE FROM ad_atr_obiektow WHERE kod = rc.kod;
      WHEN vTRYB = 'U' THEN
        UPDATE ad_atr_obiektow SET ROW = rc WHERE kod = rc.kod;
      ELSE
        INSERT INTO ad_atr_obiektow VALUES rc;
    END CASE;
  END zapiszObiekt;
Sometimes, we can guess what mode is used or get it from application (DataRow.RowState for instance).