Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.08.2004, 15:04
|
|||
|---|---|---|---|
|
|||
Передача NEW в качестве параметра функциям! |
|||
|
#18+
Народ!!!!! Возможно ли из функции триггера вызвать другую функцию и передать ей в качестве параметра поле NEW? Если можно, то как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.08.2004, 15:43
|
|||
|---|---|---|---|
|
|||
Передача NEW в качестве параметра функциям! |
|||
|
#18+
Вот например при попытке выполнить такую функцию CREATE OR REPLACE FUNCTION trig_pr_accounting() RETURNS TRIGGER AS ' BEGIN PERFORM dialup_time_acct(NEW,OLD,\'QWERQWER\'); RETURN NEW; END; 'LANGUAGE 'plpgsql'; пишет NEW used in query that is not in a rule CONTEXT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.08.2004, 20:03
|
|||
|---|---|---|---|
Передача NEW в качестве параметра функциям! |
|||
|
#18+
dialup_time_acct(NEW,OLD,\'QWERQWER\') пожалуйста в студию есть подозрение что ты там используешь что то типа NEW.zzz на что и ругается и все сообщение об ошибке плз, а не одну строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.08.2004, 10:13
|
|||
|---|---|---|---|
|
|||
Передача NEW в качестве параметра функциям! |
|||
|
#18+
centurdialup_time_acct(NEW,OLD,\'QWERQWER\') пожалуйста в студию есть подозрение что ты там используешь что то типа NEW.zzz на что и ругается и все сообщение об ошибке плз, а не одну строку. Дык я тут по архивам мэйл листов еще полиазил и обнаружил, что данные типов RECORD и ROW в функцию передать просто не возможно.... посему такой подход просто не катит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.08.2004, 10:42
|
|||
|---|---|---|---|
|
|||
Передача NEW в качестве параметра функциям! |
|||
|
#18+
но вот пример CREATE FUNCTION test1() RETURNS VOID AS ' DECLARE qwer RECORD; BEGIN SELECT INTO qwer * FROM bk_client WHERE cid=1; INSERT INTO bk_action_log (csid,datetime,action_handler,result) VALUES (2,CURRENT_TIMESTAMP,\'test1\',qwer.name); /*PERFORM test2(qwer);*/ RETURN; END; ' LANGUAGE 'plpgsql'; SELECT test1(); Получаем строку: billing=# SELECT * FROM bk_action_log WHERE alid=24; DEBUG: StartTransactionCommand DEBUG: PortalRun DEBUG: CommitTransactionCommand alid | csid | datetime | action_handler | result ----+------+------------------------+---------------+-------------- 24 | 2 | 2004-08-12 09:33:09.806135+03 | test1 | Vasya (1 запись) Далее... CREATE OR REPLACE FUNCTION test1() RETURNS VOID AS ' DECLARE qwer RECORD; BEGIN SELECT INTO qwer * FROM bk_client WHERE cid=1; INSERT INTO bk_action_log (csid,datetime,action_handler,result) VALUES (2,CURRENT_TIMESTAMP,\'test1\',qwer.name); PERFORM test2(qwer); RETURN; END; ' LANGUAGE 'plpgsql'; CREATE FUNCTION test2(record) RETURNS VOID AS ' BEGIN INSERT INTO bk_action_log (csid,datetime,action_handler,result) VALUES (2,CURRENT_TIMESTAMP,\'FUUUUCK\',\'!!!!!!!\'); END; ' LANGUAGE 'plpgsql'; SELECT test1(); DEBUG: StartTransactionCommand DEBUG: PortalRun DEBUG: AbortCurrentTransaction ERROR: колонка "qwer" не существует CONTEXT: PL/pgSQL function "test1" line 6 at perform ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.08.2004, 15:52
|
|||
|---|---|---|---|
Передача NEW в качестве параметра функциям! |
|||
|
#18+
А вот так не пробовал??? CREATE OR REPLACE FUNCTION trig_pr_accounting() RETURNS TRIGGER AS ' BEGIN PERFORM dialup_time_acct(NEW. ПОЛЕ , OLD. ПОЛЕ , \'QWERQWER\'); RETURN NEW; END; 'LANGUAGE 'plpgsql'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.08.2004, 15:55
|
|||
|---|---|---|---|
Передача NEW в качестве параметра функциям! |
|||
|
#18+
А вот так не пробовал??? CREATE OR REPLACE FUNCTION trig_pr_accounting() RETURNS TRIGGER AS ' BEGIN PERFORM dialup_time_acct(NEW. ПОЛЕ , OLD. ПОЛЕ , \'QWERQWER\'); RETURN NEW; END; 'LANGUAGE 'plpgsql'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.08.2004, 15:56
|
|||
|---|---|---|---|
|
|||
Передача NEW в качестве параметра функциям! |
|||
|
#18+
Не.. мне так не надо.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&tablet=1&tid=2007720]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 377ms |

| 0 / 0 |
