![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
aleks88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
Немного подумав пришел к выводу:
Возможно ли использовать триггер и вызывать из него ХП. Тригер запускается на добавление строки, в процедуру передаются 2 параметра и возвращается 1, который записывается с толбец ? Кокой синтаксис для присвоения значения, возвращаемого ХП переменно ? |
|||
|
||||
Deniz |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
На мой взгляд не совсем.
Для примера передай в процедуру: 1. 03.02.2012, 2 2. 04.02.2012, 2 Сравни результаты, это правильные результаты? возможно.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||
|
|||||
aleks88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
Да, результаты верны, но это все равно мелочи
![]() Нужно реализовать следующую логику: Есть поля: Date1, Date2, Date3 Int1 Поля Date3 заполняется следующим образом: Если Date2 не пусто, то Date3=Date2 Если Date2 пусто, то Date3="результат, возвращенный процедурой, которая получает на вход Date1 и Int1" Т.е. нужно получить автозаполняемое поле, которое изменяется при создании строки или изменении. ЗЫ. Извиняюсь за язык описания ![]() Я предполагаю решение: создать тригер на действия INSERT и UPDATE и вызывать ХП в нем. Но конкретно написать не получается. Можно пример как можно более приближенный к данной задачи ? ![]() |
|||
|
||||
aleks88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 31.8.2011 Репутация: нет Всего: нет |
Разобрался с горем пополам. Позже выложу, на проверку качества
![]() |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Видать в MS так же думали.
Вот как Excel считает:
Для 01.02.2012 считаем раб дни (2 шт.): это 01 и 02 след раб день это 03 Для 02.02.2012 считаем раб дни (2 шт.): это 02 и 03 след раб день это 06 Для 03.02.2012 считаем раб дни (2 шт.): это 03 и 06 след раб день это 07 Для 04.02.2012 считаем раб дни (2 шт.): это 06 и 07 след раб день это 08 Для 05.02.2012 считаем раб дни (2 шт.): это 06 и 07 след раб день это 08 Для 06.02.2012 считаем раб дни (2 шт.): это 06 и 07 след раб день это 08 ИМХО, неправильный расчет, т.е. в диапазоне дат учитывается только конечная дата, начальная не учитывается. PS: хотя для каких целей использовать. Это сообщение отредактировал(а) Deniz - 2.2.2012, 08:34 -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
tishaishii |
|
||||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
С установкой Firebird прилагаются UDF.
Для регистрации функции выполни код:
Вариант применения:
|
||||
|
|||||
tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
Это сообщение отредактировал(а) tishaishii - 3.3.2012, 22:14 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |