joe2009 Опубликовано 13 декабря, 2010 Жалоба Поделиться Опубликовано 13 декабря, 2010 Процедура для создания записей котировок Далее подробно я уже не буду останавливаться на разборе конкретных примеров - все и так было выше, только буду освещать основные новые и непонятные места.Все данные находятся в базе в начале этого поста. вот текст процедуры ADD_QUOTATION (добавить котировку) в процедуре добавлены параметры (подробно все указано выше)и переменная CNT типа SMALLINT для подсчета количества записей в таблице. begin CNT=0; /* переменная для определения количества записей по заданному условию */ SELECT COUNT(1) FROM quotations WHERE symbol=:par_symbol and timeframe=:par_timeframe and date_time=:par_data INTO :CNT; IF (CNT>0) THEN BEGIN /* если количество записей равно 0, значит добавляем запись */ update quotations set c_volume = :par_volume, c_high = :par_high, c_low = :par_low, c_open = :par_open, c_close = :par_close where symbol = :par_symbol and timeframe = :par_timeframe and date_time=:par_data; END ELSE BEGIN /* если количество записей больше 0, значит редактируем запись */ INSERT INTO quotations(symbol, timeframe, date_time, c_high, c_low, c_open, c_close, c_volume) VALUES (:par_symbol,:par_timeframe,:par_data,:par_high,:par_low,:par_open,:par_close, :par_volume); END SUSPEND; end пример вызова процедуры: execute procedure add_quotation 'EURUSD', 'H4', '2010.02.16 16:00', 1.37748, 1.36442, 1.36690, 1.37541, 10185 можете попробовать вызвать процедуру несколько раз с одними и теми же параметрами. Исключительных ситуаций при этом не возникает - все "отруливает" процедура. В этом можно убедиться (кто знает английский) в окне снизу первый раз идет сообщение inserted все остальные - updated.Таким образом, мыбудем использовать эту процедуру для создания записей в таблице котировок. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения