|
|
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov lockyАга. "псевдо юзер"...... Стрелять за такое. Не нравится юзер: есть ещё роли и контекстные переменные. Контекстные переменные - это уже куда лучше. Значительнее. А юзера - нафиг-нафиг. Поведение триггера должно зависить от того что хотят сделать, а не от того, кто это делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 21:06 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Если в Language Reference Вы нащли только ALTER TRIGGER INACTIVE, а до CURRENT_USER, который обычно и используют для обхода триггерной логики не докопались, то тут уже поможет только хирургия. Может, я и идиот, но моя цель звучит не как "использовать триггеры", а делать качественные системы, но поскольку ваш подход единственно верный, то пойду и убьюсь апстену. С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 21:54 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН1)Отключение триггеров в транзакции блокирует таблицу целиком. Если вместо есть транзакция, в которой вместо триггера должен выполнятся другой код, то головная боль обеспечена. А вот интересно, отключить индекс, pk или fk в postgre тоже вызывает такие проблемы? Если да, то они как минимум зло на две трети, согласно этому высказыванию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:17 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН Может, я и идиот, но моя цель звучит не как "использовать триггеры", С уважением. Пардон, были озвучены три причины неиспользования триггеров. 1-ю и 3-ю проблему решили. Значит причин неиспользовать триггеры нет, фактически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:26 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
lockyFreemanZAV А причина страха очевидна. До этого они столкнулись с реализацией оных в MSSQL забавно. я "сталкиваюсь" с реализацией курсоров в оракле (а они там неплохо реализованы). Но по прежнему считаю что чем совать курсоры куда ни попадя (зачастую от ненадлежащего знания матчасти) - есть зло. Забавно, что речь о курсорах не шла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:27 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
lockyкурсоры куда ни попадя (зачастую от ненадлежащего знания матчасти) - есть зло. поддерживаю. в отличие от "триггеры - зло". pkarklinПоляковой Ларисе Николаевне самой бы курсы послушать... могобыть. я полез туда за просмотром синтаксиса. синтаксис поначалу опасений не вызывает. Сильно смутили inserted/deleted, о которых я и раньше знал. в FB, например, любые триггеры только FOR EACH ROW, если использовать терминологию Оракла. И before/after без проблем. И в FB триггеры используются не только для обработки, но и как "замена" сложных check constraint, причем использование их как before не требует никаких "откатов транзакций" и т.п. Я ж говорю, что архитектуры разные. Зачем, опираясь на архитектуру триггеров и транзакций в MS SQL, проводить параллели "зла" на все остальные СУБД? потом, я нашел например http://www.sql.ru/articles/mssql/02021201AuditingThroughTriggers.shtml автор - Сатана? В ФБ например есть Execute Statement, т.е. выполнение SQL из переменных в коде процедур и триггеров. Да, можно сказать что это зло, потому что новички, и особенно приходящие с других серверов, начинают использовать эту фичу напропалую, вместо продумывания кода и написания нормальных процедур и запросов. Так что, в MS SQL одно зло, а в других СУБД - другое зло. Опять же, в MS SQL нет триггеров на view. Это "добро"? А в FB они есть. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:28 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
kdvОпять же, в MS SQL нет триггеров на view. Вообще-то - есть. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:37 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
FreemanZAVlockyFreemanZAV А причина страха очевидна. До этого они столкнулись с реализацией оных в MSSQL забавно. я "сталкиваюсь" с реализацией курсоров в оракле (а они там неплохо реализованы). Но по прежнему считаю что чем совать курсоры куда ни попадя (зачастую от ненадлежащего знания матчасти) - есть зло. Забавно, что речь о курсорах не шла. Забавно, что вы не в курсе о проблемах в применении курсоров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:44 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
ВЫВообще-то - есть. блин. только что смотрел в http://msdn.microsoft.com/ru-ru/library/ms189799.aspx была такая фраза. теперь смотрю - не вижу. а. есть ограничения. FOR | AFTER "Триггеры AFTER не могут быть определены на представлениях." с другой стороны, тут же взаимоисключающая фраза: "Если единственным заданным ключевым словом является FOR, аргумент AFTER используется по умолчанию." И правда зло... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:45 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
kdvбыла такая фраза. теперь смотрю - не вижу. Плюнь, дока у МС тоже не блистает. Смотри в синтаксическую диаграмму: Код: plaintext 1. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:51 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
locky Забавно, что вы не в курсе о проблемах в применении курсоров Почему это. Как раз я теперь знаю, что проблем с примененим курсоров в оракле нет, ибо lockyони там неплохо реализованы Теперь остаётся узнать, какая связь между триггерами и курсорами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:52 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
FreemanZAVlocky Забавно, что вы не в курсе о проблемах в применении курсоров Почему это. Как раз я теперь знаю, что проблем с примененим курсоров в оракле нет, ибо lockyони там неплохо реализованы Теперь остаётся узнать, какая связь между триггерами и курсорами Вот ведь прости господи Да, проблем с реализацией курсоров в оракле нет. Есть проблема с применением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 22:57 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
locky Да, проблем с реализацией курсоров в оракле нет. Есть проблема с применением. Не знал, что в оракле проблематично применить курсоры, несмотря на их хорошую реализацию. Ну так а триггеры здесь при чём? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 23:00 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
FreemanZAVlocky Да, проблем с реализацией курсоров в оракле нет. Есть проблема с применением. Не знал, что в оракле проблематично применить курсоры, несмотря на их хорошую реализацию. стейтмент drop там тоже хорошо реализован, но это совершенно не значит что его нужно постоянно применять. FreemanZAV Ну так а триггеры здесь при чём? см. выше. Применимость фичи обосновывается не качеством её реализации. Ты будешь применять плохо реализованную фичу, если таки она тебе реально нужна. И аналогично - не следует применять ненужную (в данном случае) фичу только потому что она "хорошо реализована". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 23:06 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
lockyПрименимость фичи обосновывается не качеством её реализации. Ты будешь применять плохо реализованную фичу, если таки она тебе реально нужна. И аналогично - не следует применять ненужную (в данном случае) фичу только потому что она "хорошо реализована".+1. очевиднейшая, вроде, вещь сказана, но, почему-то она непонятой оппонентами остаётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 23:10 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
lockyстейтмент drop там тоже хорошо реализован, но это совершенно не значит что его нужно постоянно применять. Но и "злом" его не назовёшь lockyИ аналогично - не следует применять ненужную (в данном случае) фичу только потому что она "хорошо реализована". А , не понял глубину мысли Я знаю аналогичный случай. В Туле, я слышал, хорошие самовары, но их тоже не стоит постоянно применять, например в качестве пряника. Ну и уж конечно, вообще, совать что-либо куда не попадя - есть зло. Если с этих позиций рассуждать, то да, триггера - зло, впрочем, как и самовары. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 23:17 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
egorychочевиднейшая, вроде, вещь сказана, но, почему-то она непонятой оппонентами остаётся. Очевиднейшая вещь звучала так: lockyтриггера - зло. Иногда - необходимое, но зло - однозначно. и lockyя "сталкиваюсь" с реализацией курсоров в оракле (а они там неплохо реализованы). Но по прежнему считаю что чем совать курсоры куда ни попадя (зачастую от ненадлежащего знания матчасти) - есть зло. Между фразами "зло - однозначно" и "совать куда ни попадя - есть зло" просматривается "очевиднейшая" разница. Вот оппоненты и хотят разрешить данную логическую нестыковку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 05:58 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
Энди Таккер Между фразами "зло - однозначно" и "совать куда ни попадя - есть зло" просматривается "очевиднейшая" разница. Вот оппоненты и хотят разрешить данную логическую нестыковку. Оппонентам просто хочется пофлудить и несколько оправдать себя Всегда нелегко, когда кто-то приходит и говорит что твой стиль работы - полная фигня. Это очень обидно. Ведь мы так ловко выпутываемся из ситуаций, в которые же сами и попали! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 08:45 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
Никак не могу получить ответ на один вопрос. В MSSQL можно при ошибке в процедуре посмотреть стек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 09:21 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕН Если вместо есть транзакция, в которой вместо триггера должен выполнятся другой код, то головная боль обеспечена. Это следствие неправильно спроектированной структуры. С какой стати в какой-то там транзакции что-то должно выполняться вместо триггера? Зачем вам в данном случае триггер? В триггере надо выполнять те действия, которые ВСЕГДА выполняются при изменении данных. Имхо... За редким исключением, на этот случай есть отключение триггера, но на то это и редкое исключение, что возникает не так часто, чтобы быть проблемой. --- Проходя мимо разложенных граблей, ты теряешь драгоценный опыт. (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:25 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
FreemanZAVНикак не могу получить ответ на один вопрос. В MSSQL можно при ошибке в процедуре посмотреть стек? Нет. In the scope of a CATCH block, the following system functions can be used to obtain information about the error that caused the CATCH block to be executed: ERROR_NUMBER() returns the number of the error. ERROR_SEVERITY() returns the severity. ERROR_STATE() returns the error state number. ERROR_PROCEDURE() returns the name of the stored procedure or trigger where the error occurred. ERROR_LINE() returns the line number inside the routine that caused the error. ERROR_MESSAGE() returns the complete text of the error message. The text includes the values supplied for any substitutable parameters, such as lengths, object names, or times. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:28 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
А стек-то где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:41 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
FreemanZAV, pkarklinНет. Вы это пропустили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:46 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
pkarklinFreemanZAV, pkarklinНет. Вы это пропустили? Пардон, пропустил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 10:56 |
|
||
|
MS SQL Express vs PostgreSQL/SQLite/FireBird
|
|||
|---|---|---|---|
|
#18+
FreemanZAVНикак не могу получить ответ на один вопрос. В MSSQL можно при ошибке в процедуре посмотреть стек? Стек вызовов процедур можно увидеть, используя SQL Profiler + отлов SP:StmtStarting и SP:StmtCompleted. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2009, 11:01 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36360110&tid=1552859]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 164ms |

| 0 / 0 |
