Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
субшъ. _ спасиба ++++++++++++++ замечание тебе, асёлъ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 14:18 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 14:32 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
точна? пичальна но фсьо равно спасиба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 14:34 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
асёлъточна? пичальна но фсьо равно спасиба Если немножно вдумчиво подумать, то можно придти к ответу, что "можно". Для этого пишется ХП с нужной логикой, которая вызывается с триггеров нужных таблиц. Таким образом получаем повторно-используемое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 14:42 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
ASCRUS асёлъточна? пичальна но фсьо равно спасиба Если немножно вдумчиво подумать, то можно придти к ответу, что "можно". Для этого пишется ХП с нужной логикой, которая вызывается с триггеров нужных таблиц. Таким образом получаем повторно-используемое решение.да йа такъ и делойу проста интиресна была а фдрукъ можна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 14:43 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
Сделать можно все что угодно. Главное перед этим обосновать вопрос "А зачем ?" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 14:48 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
ASCRUSСделать можно все что угодно. Главное перед этим обосновать вопрос "А зачем ?" :) Мне такое было нужно чтобы во всех таблицах проставлялась дата последнего изменения записи. Причем при обновлении записи в любой таблице - дата должна меняться у всех. В рез-те сделал обновление даты при сохранении через клиентскую программу, хотя конечно правильнее сделать через ХП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 17:28 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
CastorМне такое было нужно чтобы во всех таблицах проставлялась дата последнего изменения записи. Причем при обновлении записи в любой таблице - дата должна меняться у всех. В рез-те сделал обновление даты при сохранении через клиентскую программу, хотя конечно правильнее сделать через ХПА потом клиент переводит часы и... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 17:44 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
Castor ASCRUSСделать можно все что угодно. Главное перед этим обосновать вопрос "А зачем ?" :) Мне такое было нужно чтобы во всех таблицах проставлялась дата последнего изменения записи. Причем при обновлении записи в любой таблице - дата должна меняться у всех. В рез-те сделал обновление даты при сохранении через клиентскую программу, хотя конечно правильнее сделать через ХП Ну так нужно разработчиков FB попросить сделать такую полезную фичу, как в ASA: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 17:54 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
ASCRUS Ну так нужно разработчиков FB попросить сделать такую полезную фичу, как в ASA: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Ну так есть уже. Давно как есть... Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 19:14 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
разработчиков FB ни о чем не нужно просить. current_user и current_timestamp есть. В приведенном коде last_user не имеет смысла (это тот же current_user), а timestamp это вообще то тип столбца и писать надо опять же current_timestamp. Если ты уверен, что в ASA так как ты написал, то кривовато это. из кода нигде не видно почему при insert должны автоматом заполниться только два поля, а при update - другие два. Кстати, not null default x вообще то тоже под сомнением. потому что not null не разрешает передавать null. А default заменяет отсутствующее значение на указанное. вопрос в том - означает-ли отсутствие переданного значения null, или нет? собственно, если бы я это делал, то сделал бы триггер на before insert для create столбцов (и не писал not null и default), а для двух столбцов update сделал бы before update триггер, в котором также прописал current_timestamp и current_user. тогда достаточно было бы вызвать insert into table1 (n) и update table set id=id where id = :param ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 19:23 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
проглядел, что стандартное название типа данных TIMESTAMP у вас не туда используется (а тип данных - datetime). Сочувствую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 19:24 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
kdv проглядел, что стандартное название типа данных TIMESTAMP у вас не туда используется (а тип данных - datetime). Сочувствую. Да ну, брось. Это мелочи. И не такое бывает. Если не в названии, то в реализации. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 20:09 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
kdvразработчиков FB ни о чем не нужно просить. current_user и current_timestamp есть. В приведенном коде last_user не имеет смысла (это тот же current_user), а timestamp это вообще то тип столбца и писать надо опять же current_timestamp. Если ты уверен, что в ASA так как ты написал, то кривовато это. из кода нигде не видно почему при insert должны автоматом заполниться только два поля, а при update - другие два. Это видно из документации. CURRENT USER в ASA соответствет current_user в FB. Аналогично и CURRENT TIMESTAMP. А вот LAST USER и TIMESTAMP - это специальные default-значения, при назначении которых полям сервер автоматом выставляем их значения при апдейте. kdv Кстати, not null default x вообще то тоже под сомнением. потому что not null не разрешает передавать null. А default заменяет отсутствующее значение на указанное. вопрос в том - означает-ли отсутствие переданного значения null, или нет? Если при insert явно указать null, то default не используется. kdv проглядел, что стандартное название типа данных TIMESTAMP у вас не туда используется (а тип данных - datetime). Сочувствую. Чему сочувствуешь? timestamp и datetime в ASA один и тот же тип. Вполне можно и так написать: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2005, 20:29 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
kdvразработчиков FB ни о чем не нужно просить. current_user и current_timestamp есть. В приведенном коде last_user не имеет смысла (это тот же current_user), а timestamp это вообще то тип столбца и писать надо опять же current_timestamp. В приведенном примере в DEFAULT ключевые слова "LAST USER" и "TIMESTAMP" имеют очень большой смысл - они гарантируют, что значения полей, на которые они выставлены будут автоматически изменятся при каждом update записи. Это гораздо приятнее, чем писать триггера на таблицы или вставлять эти значения в ХП. Я вроде как обьяснил это в предыдущем сообщении, видимо не поняли. kdvЕсли ты уверен, что в ASA так как ты написал, то кривовато это. из кода нигде не видно почему при insert должны автоматом заполниться только два поля, а при update - другие два. Я на 100% уверен про то, как надо писать в ASA на WatcomSQL :) И очень подробно обьяснил, почему при insert заполнятся все 4 поля, а при update только 2 поля из 4-х :) авторКстати, not null default x вообще то тоже под сомнением. потому что not null не разрешает передавать null. А default заменяет отсутствующее значение на указанное. вопрос в том - означает-ли отсутствие переданного значения null, или нет? Наоборот, очень даже логично - ставя NOT NULL я заявляю, что каждая запись должна иметь создателя и время создания, а так же последнего юзера изменившего запись и последнее время изменения. По стандарту SQL если в INSERT поля не указываются, то они заполняются с DEFAULT. В ASA ввели расширение этого стандарта, где DEFAULT LAST USER и DEFAULT TIMESTAMP автоматически обновляются значениями так же при UPDATE, если они явно не указаны в нем. авторсобственно, если бы я это делал, то сделал бы триггер на before insert для create столбцов (и не писал not null и default), а для двух столбцов update сделал бы before update триггер, в котором также прописал current_timestamp и current_user. Ну так никто и не спорит, что это можно сделать через BEFORE TRIGGER. Однако не делать лишний раз этот триггер на сотни таблиц гораздо удобнее и что то мне подсказывает эффективнее с точки зрения производительности INSERT и UPDATE :) автортогда достаточно было бы вызвать insert into table1 (n) и update table set id=id where id = :param именно так и достаточно :) авторпроглядел, что стандартное название типа данных TIMESTAMP у вас не туда используется (а тип данных - datetime). Сочувствую. Спасибо за сочувствие :) В ASA - DATETIME стандартный домен на базе нативного типа TIMESTAMP. Сделан для совместимости с MSSQL2000 и Sybase ASE, в которых до сих пор даже нет отдельных типов DATE и TIME. В примере я его привел только чтобы облегчить понимание фичи и не вносить путаницу, т.е. можно было бы написать и так: Код: plaintext P.S. В общем честно сказать я просто хотел очередной раз хотел показать, что негоже сидеть в своей траншее и размахивать флагом "Interbase". Фичи, приведенные мною достаточно удобные и здорово мне помогают для реализации контроля доступа и логирования по записям таблиц, если они есть в FB, то извиняюсь за незнание и бесполезный совет, если нет, то нужно оценить их пользу и возможно реализовать, а не начинать тут же кидать фразами "Мы и так можем сделать", "Нам это не нужно" и т.д. и т.п. Я могу твердо заявить, что с точки зрения самых полезных фич различных СУБД в SQL для ASA реализовано почти все, ее разработчики не гнушаются брать лучшее и всегда прислушиваются к мнению своих пользователей. Наглядный пример - сейчас активно на их форуме "ASA futures" идет обсуждение реализации фичи "TOP -Value", где проектировщик БД, который работает и на Оракле предложил заложить в функциональность SELECT TOP поддержку отрицательных значений, что означает выбрать не первые сколько то записей, а последние сколько то записей. Мотивируется это тем, что при сборе динамического SQL это гораздо удобнее, чем дополнительно играться с ORDER BY ASC/DESC. Вполне возможно эта фича при благоприятном исходе обсуждения будет реализована в ASA через пару месяцев, если на это подпишется достаточно народу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 00:24 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
ASCRUS Я могу твердо заявить, что с точки зрения самых полезных фич различных СУБД в SQL для ASA реализовано почти все, ее разработчики не гнушаются брать лучшее и всегда прислушиваются к мнению своих пользователей. Наглядный пример - сейчас активно на их форуме "ASA futures" идет обсуждение реализации фичи "TOP -Value", где проектировщик БД, который работает и на Оракле предложил заложить в функциональность SELECT TOP поддержку отрицательных значений, что означает выбрать не первые сколько то записей, а последние сколько то записей. Мотивируется это тем, что при сборе динамического SQL это гораздо удобнее, чем дополнительно играться с ORDER BY ASC/DESC. Вполне возможно эта фича при благоприятном исходе обсуждения будет реализована в ASA через пару месяцев, если на это подпишется достаточно народу. У FB тоже есть разработчики :) и даже из России. Активно участвуют в обсуждении фич в форуме и открыты для предложений. Но ресурсов у opensource проекта FB IMHO меньше чем у коммерческого ASA, а наследие более тяжелое и кривое. Полезные мелочи - это хорошо. Но это мелочи, которыми стоит заняться после решения более важных проблем сервера. По мне так гораздо интереснее иметь нормальный оптимизатор, инкрементальный бэкап (будет в FB2), transaction log (сейчас скажут что нафиг не нужно либо очень сложно) и еще возможность распараллеливания между несколькими процессорами при общем кэше. Триггеры в таком случае не влом действительно вручную прописать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 10:20 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
to ASCRUS: не перегибай палку, ОК? мне уже эта реклама ASA просто надоела, ты по-моему уже давно перешел все границы разумного. Чуть что - сразу начинается песня про то как в ASA замечательно, и вот неплохо было бы FB у него позанять фишек. Нет, извини, дерьмовый ты синтаксис привел, вот такие мои ощущения (и от синтаксиса и от подобной логики). Так что будь добр, хочешь пообсуждать ASA - давай сделаем это в другом месте. Если и дальше будешь именно здесь на ASA кивать без повода - честное слово, не люблю жаловаться, но уговорю модератора отрубить тебя от этого форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 10:42 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
ASCRUS Я на 100% уверен про то, как надо писать в ASA на WatcomSQL :) И очень подробно обьяснил, почему при insert заполнятся все 4 поля, а при update только 2 поля из 4-х :) И нафига тогда все эти мудрствовования с last user? Это эквивалентно заданию апдейтной пары с теми же default, что и инсёртной. Это искажение сути мне, например, нафиг не надо, апдейтные поля должны заполняться только при апдейте, а при нтсёрте оставаться нуллами. Триггером. А инсертные - через default. Вот если бы такой синтаксис позволял генерировать на автомате апдейтный триггер - это другое дело. Но это а) мелочь, решаемая собственным автоматом генерирования стандартных триггеров б) поднимает проблемы с позицией такого триггера (надо ещё подумать, в какой момент эти поля должны заполняться и при создании других триггеров того же типа на этой таблице об этом помнить). Так что имхо автомат на клиенте удобнее. Я создаю им болванки триггеров, которые потом дописываю ручками перед созданием если надо. Чтоб без необходимости разнесения функций по позициям триггеров всё было в одном триггере и в той строке, где мне это нужно. ASCRUS P.S. В общем честно сказать я просто хотел очередной раз хотел показать, что негоже сидеть в своей траншее и размахивать флагом "Interbase". В прошлый раз я отреагировал спокойно, даже на то, что ты не отреагировал на реплики о том, что некоторые вещи, о которых ты говоришь, в FB есть и без всяких дополнительных нестандартных функций. В этот раз уже даже мне это начинает казаться спамом. Прежде чем что-то рекламировать в чужом огороде, надо бы об этом огороде поиметь некоторое представление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 12:12 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
Александр Гoлдун. Честно говоря, я думал что ASCRUS - это твой ник здесь. Приятно было ошибиться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 12:14 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
Гм, большое сорри всем за спам. Никого не хотел обидеть и уж боже упаси навязать рекламу ASA, тем более за бесплатно, извините что не так поняли. Всегда рад буду встрече на форумах Sybase и Сравнение СУБД обсудить полезные фичи разных СУБД, если у кого будет желание рассказать, что есть полезного в Interbase и чего не хватает в ASA, так как думается мне расширение кругозора никогда не повредит :) P.S. Становлюсь верным читателем этого форума, не мешая писателям, всем удачи. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 12:57 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
IMHO, писать в таблицу логин пользователя довольно опасно, особенно в FB (в других серверах, где security встроено в саму базу, - тоже, но меньше). Неизвестно, что там дальше будет с этими логинами. Лучше отдельную табличку пользователей завести и её IDшники уже использовать (и место можно немного сэкономить). А это значит, что примочки как в ASA тут не пригодятся. Как сделать один триггер на несколько таблиц я вообще слабо себе представляю. Там же в каждом случае - свой контекст, а ещё легко нарваться на рекурсию и, наверное, других подводных камней полно. Так что такое упрощение может на самом деле всё наоборот усложнить. Лучше ну его нафих. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 13:05 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
Amris Mirddin Александр Гoлдун. Честно говоря, я думал что ASCRUS - это твой ник здесь. Приятно было ошибиться :) Мы с вами знакомы? А, привет, Дед! ;) Я уже давно с вами общаюсь и в курсе, насколько ревностно ДК относится к опекаемому продукту, поэтому стараюсь особо не вступать в полемику. (Бейсбольная бита с надписью FB - опасная штука :) Хотя скорее всего знаком с FB гораздо лучше чем ASCRUS и имею бОльшую базу для объективного сравнения. Но абстрактно доказывать что-то не хочу. Спросят - отвечу, увижу глубокое по моему мнению заблуждение - может поправлю. Время дорого. ASCRUS и правда немного перегнул, а вот Диме imho стОит взять пример хладнокровия с тезки. В общем, давайте жить дружно и без фанатизма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 13:17 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
ASCRUSВсегда рад буду встрече на форумах Sybase Один из разработчиков FB там регулярно бывает. ASCRUS P.S. Становлюсь верным читателем этого форума, не мешая писателям, всем удачи. Этот форум - imho не самое лучшее место про FB. Глянь хотя бы в тему этой ветки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 13:58 |
|
||
|
current user | last user Firebird<>ASA (Было: один триггер на несколько таблиц)
|
|||
|---|---|---|---|
|
#18+
Александр Гoлдун Этот форум - imho не самое лучшее место про FB. Глянь хотя бы в тему этой ветки. Тут очень неровно. Иногда бывают даже вопросы, в которые не суёшься потому что не владеешь и читаешь с интересом, а потом как заколодит на несколько дней юмора в коротких штанишках по причине тотального игнорирования доки ;) Причём на одну и ту же тему и одни и те же вопросы косяком. Но это везде бывает, в другом месте просто поменьше. А тема - да... Я на неё несколько дней внимания не обращал из принципиальных соображений, а потом смотрю - что-то уж больно активно выскакивает наверх :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 14:25 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32904123&tid=1553941]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 169ms |
| total: | 300ms |

| 0 / 0 |
