Перейти к содержанию
Форекс Форум трейдеров Академии «MasterForex-V»

Работа с базами данных FireBird


Рекомендуемые сообщения

Процедура для создания записей котировок

 

Далее подробно я уже не буду останавливаться на разборе конкретных примеров - все и так было выше, только буду освещать основные новые и непонятные места.

Все данные находятся в базе в начале этого поста.

 

вот текст процедуры 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.

Таким образом, мыбудем использовать эту процедуру для создания записей в таблице котировок.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...