Вам нужно знать, как фильтровать строки по «символу».
WHERE sec.symbol = NEW.symbol
CREATE TRIGGER day_insert
AFTER INSERT ON day
FOR EACH ROW
EXECUTE PROCEDURE update_sma8();
Вот полный код.
DROP FUNCTION public.update_sma8();
CREATE FUNCTION public.update_sma8()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 100
VOLATILE NOT LEAKPROOF
AS $BODY$
BEGIN
UPDATE day d SET sma8 = s.simple_mov_avg
FROM
(
SELECT sec.date,AVG(sec.close)
OVER(ORDER BY sec.date ROWS BETWEEN 7 PRECEDING AND CURRENT ROW) AS
simple_mov_avg FROM day sec WHERE symbol = NEW.symbol
)s where s.date = NEW.date --The newly inserted date
AND d.date = s.date ;
RETURN NULL;
END $BODY$;
ALTER FUNCTION public.update_sma8()
OWNER TO postgres;
Почему не только используют компилятор Delphi OS X? Свободный Паскаль утверждает, что поддерживал Delphi на OS X (не будучи кодером Паскаля, я не попробовал его).
Простой ответ: Вы просто не можете портировать нетривиальный код Delphi на C++ без полного, переписывают. Объектная модель C++ очень отличается от Delphi. Это не имеет базового класса как TObject, из которого получены все другие объекты, и этому недостает, поддержка большого количества RTTI наполняют тот код Delphi, часто считает само собой разумеющимся. И нет никакого простого способа повторно реализовать Delphi RTTI в C++, начиная со многое из, его сделан на уровне компилятора и большом количестве, он основан на том, что все классы Delphi убывают от TObject.
C++ также испытывает недостаток в поддержке понятия разделов инициализации и завершения единицы, которые так распространены в Delphi, и что это имеет, вместо этого плохо повреждается. (Ищите "статическое фиаско инициализации порядка" для всех окровавленных деталей.)
Обработка исключений Delphi также намного более совершенствуется, чем C++. Часть этого является объектной моделью и частью, он - волшебство компилятора. Плюс, C++ не имеет никакой поддержки попытки, наконец создают.
Если Вы хотите портировать проект Delphi на Mac, Свободный Паскаль является Вашим лучшим решением. Это не на 100% совместимо с Delphi, но это достаточно хорошо для большого количества вещей, и Вы конкретно упомянули, что не должны портировать Delphi материал GUI. AFAIK областью GUI является источник большинства слабых мест совместимости FPC, поэтому если это не необходимо, FPC, вероятно, достаточно близок к идеалу для Ваших потребностей, по крайней мере, пока CodeGear не выводит компилятор OSX. (О котором официально не объявили, но на основе различных вещей, которые были сказаны, весьма разумно предположить, что каждый будет доступен когда-то в следующем году.)
Для преобразования Вашего кода от Delphi до Cpp взгляните на
http://ivan.vecerina.com/code/delphi2cpp/.
Я использовал это для преобразования некоторых классов и функций в SysUtils, DateUtils и StrUtils с помощью wxWidgets функции. Если Вы планируете использовать wxWidgets для C++, взглянули на http://twinforms.com/products/wxwidgets/wxvcl.php, который имеет весь преобразованный источник.
Если Вы хотите, непосредственно разрабатывают приложения MAC OSX, использующие, затем взглянули на wxForms для Delphi - http://twinforms.com/products/wxformsdelphi/index.php
Если Ваш код компилирует в Delphi 2007 в блоки.NET, у Вас может быть намного более легкая опция, чем попытка портировать от Object Pascal Delphi до C++.
Вы могли потенциально скомпилировать свою логику в блоки.NET (и возможно даже части UI) и использовать Моно для выполнения его на Mac. Вы могли записать пользовательский GUI вокруг Моно, или даже потенциально подать единственную, независимую от платформы заявку.
Я думаю, что это было бы трудно сделать механически, таким образом, Вы, вероятно, смотрите на полное, переписывают. Одна вещь принять во внимание состоит в том, что обычно Delphi использует попытку... наконец структуры для управления ресурсами, тогда как C++ использует технику, известную как RAII (приобретение ресурса является инициализацией). Необходимо читать на этом и других идиомах C++ перед попыткой преобразования.
Можно использовать также Призму Delphi. Это для.NET, но это - последнее выражение в спецификации языка Delphi. Это поддерживает также MAC OSX (см. ссылку). Также парни от CodeGear/EMBT находятся в работах для нового компилятора, а также для новой версии Delphi, который, как ожидают, войдет в бета-версии в апреле и сократит разрыв между студией RAD и Призмой. Посмотрите их страницу 'Beta Programs'.
"Корректный" способ сделать это должно переписать его в Objective C. Я нахожу Objective C немного странным, но существует много общих черт с Delphi в пути подключение объектов и делегат.
Вы можете использовать Свободного Паскаля, чтобы сделать это более быстро, но необходимо серьезно рассмотреть переписывание.
Я любил бы Причал, если они могли бы выпустить версию Mac OS X Delphi, который не сделал, Вы знаете, сосете как Kylix, сделал. Можно мечтать.
Править: Существует большое преимущество для пребывания в Delphi и наличия отдельной версии для Mac в Objective C. Во-первых, это означает, что Вы не должны переписывать версию в Windows, проигрывая (по-видимому), годы инвестиций в код Delphi. Во-вторых, программное обеспечение Mac работает по-другому, чем Windows с точки зрения UI. Простой порт продукта является несоответствующим, и создает помехи разработчику от использования больших собственных функций Windows и Mac. См.: более старые версии MS Word для Mac или iTunes для Windows. Они смотрят и чувствуют себя неправыми.