Light Style© by Fisana

Перейти к содержимому


Инвестиционные фонды NordFx: профессиональное управление и прозрачность


NordFX

www.fxpro.ru.com

Фотография

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


  • Эта тема закрыта Тема закрыта
15 ответов в этой теме

#16 joe2009

joe2009

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 127 сообщений

Опубликовано 13 Декабрь 2010 - 12:26

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

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

вот текст процедуры 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.
Таким образом, мыбудем использовать эту процедуру для создания записей в таблице котировок.




Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей

Рейтинг брокеров форекс: кто лидер, кто аутсайдер и почему?




Masterforex-V NordFX

Rambler's Top100

Принимаем Z-Payment