Розробка автоматизованої системи обліку комп’ютерної техніки, орг-техніки та витратних матеріалів на С++ Builder
83

Лістинг процедури INSERT_CONTENTS

CREATE PROCEDURE INSERT_CONTENTS (

    I_ID_ORDER INTEGER,

    I_NOM_ZAKAZ INTEGER,

    I_ID_TOVAR INTEGER,

    I_MARK CHAR(30),

    I_CONFIG VARCHAR(200),

    I_SERIAL VARCHAR(30),

    I_KILK INTEGER,

    I_PRICE DECIMAL(15,2),

    I_GARANTY INTEGER)

AS

DECLARE VARIABLE EXIST VARCHAR(3);

DECLARE VARIABLE TEMP_ID INTEGER;

BEGIN

    exist = 'No';

    FOR

        SELECT id_tovar FROM CONTENTS WHERE CONTENTS.NOM_ZAKAZ = :i_nom_zakaz

        INTO :temp_id

    DO

    BEGIN

        IF (temp_id = i_id_tovar) THEN exist = 'Yes';

    END

    IF (exist = 'Yes') then

        BEGIN

            UPDATE CONTENTS

            SET NOM_ZAKAZ = :I_NOM_ZAKAZ, ID_TOVAR = :I_ID_TOVAR, MARK = :I_MARK,

                CONFIG = :I_CONFIG, SERIAL = :I_SERIAL, KILK = KILK + 1, PRICE = :I_PRICE,

                GARANTY = :I_GARANTY

            WHERE (id_tovar = :i_id_tovar and nom_zakaz = :i_nom_zakaz);

        END

    IF (exist = 'No') then

        BEGIN

            INSERT

            INTO CONTENTS (ID_ORDER, NOM_ZAKAZ, ID_TOVAR, MARK, CONFIG,

                           SERIAL, KILK, PRICE, GARANTY)

            VALUES (:I_ID_ORDER, :I_NOM_ZAKAZ, :I_ID_TOVAR, :I_MARK, :I_CONFIG, :I_SERIAL, :I_KILK,

                    :I_PRICE, :I_GARANTY);

        END

END