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).