Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Недавно я получил письмо, в котором Андрей Гордиенко предлагает обсудить новые возможности и новые проблемы MS SQL Server-2000. Вот что он пишет: ...Лично меня очень заинтересовали Variant, UDF и Instead-триггеры, цепляемые ко взгляду (от автора рассылки: на сколько я понял, имеется ввиду представление - view). Для меня эти три возможности, продекларированные для новой версии, в корне меняют подходы к тем проблемам, которые я пытаюсь решить в версии 7.0 с помощью совершенно неприспособленных для этого методов. Хочу найти единомышленников из числа тех, для кого переход на версию 2000 является жизненной необходимостью. Рассчитываю на отклики тех, кто её пощупал и смог обойти подводные камни, на которые я наткнулся. Я пытался сделать тестовую установку, и сразу столкнулся с множеством проблем, о которых и хочу предупредить потенциальных или фактических собратьев по несчастью. Я создал таблицу и взгляд, который выбирал некоторую часть записей из этой таблицы и одновременно ограничивал набор полей только "рабочими" полями (часть полей используется для журнализации и прочих служебных целей, с которыми имеют дело только триггеры). Ко взгляду я прицепил три Instead-триггера - на удаление, вставку и изменение. После чего обнаружил следующее. При попытке править, удалять или вставлять записи во взгляд через Query Analyzer триггеры отрабатывают - все происходит, как задумано, душа поет. Но стоит попробовать делать эти операции через OLEDB из какой-либо клиентской программы, либо из Enterprise Manager (Open - All rows), который, кстати, работает через ODBC - так же как и Query Analyzer, записи прямиком попадают в базовую таблицу, Instead-триггеры не запускаются, словно их вообще не существует. На конференции на sql.ru мне ответили, что, скорее всего, проблема в сетевых библиотеках. Хотелось бы получить какое-нибудь дальнейшее развитие этой темы. Еще один глюк. Сделал UDF, которая вызывается в качестве значения Default для поля таблицы. В тексте этой UDF вызывается ниладическая функция SYSTEM_USER. При работе из Query Analyzer SYSTEM_USER возвращает 'sa', а при работе из EM эта же функция возвращает сетевое имя в виде 'Domain_name\User_name', хотя в EM я зарегистрировал сервер тоже под 'sa'. Полагаю, тут тоже подпакостили сетевые библиотеки. Дальше больше (все что дальше, касается только программистов, использующих Delphi 5 + ADO). Наткнувшись на перечисленные глюки, я деинсталлировал MS SQL Server 2000. При попытке продолжить работу над программами, которые я раньше писал в Delphi+ADO, стала выскакивать ошибка "... BOF or EOF..." при попытке открыть или закрыть любой источник записей, в котором записей не содержится (просто открыть, больше ничего). Переустановка MDAC версий 2.1 и 2.5 не помогла. Оказалось, что MDAC 2.6, который устанавливается вместе с MS SQL Server 2000, БЕССМЕРТЕН. Удалить его уже невозможно. А ошибка возникает из-за несовместимости ADO-компонентов Delphi с этой версией. На сайте Borland выложен патч, который лечит данную ошибку. Я его скачал и установил. "... BOF or EOF..." исчезла. Однако, события ADO-компонентов OnDeleteError, OnPostError и аналогичные перестали нормально работать. Конкретно, если в этих событиях сделано присвоение Action:=daAbort, это не выводило программу в нормальное русло с отменой операции как положено тому быть, программа зацикливалась с постоянной выдачей одного и того же сообщения об ошибке. В результате для того, чтобы вернуться к нормальной работе, мне пришлось переустанавливать на своем компьютере систему - потом уже ставить MDAC более ранней версии. Возможно, я не нашел каких-то реально существующих менее болезненных путей решения описанных выше проблем. Очень хочется узнать мнение собратьев. С уважением, Андрей Гордиенко hydro@corbina.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2001, 14:34 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Сказка про белого бычка, уже здесь обсуждавшаяся. Ну не переписали мужики курсорную библиотеку к OLE DB-провайдеру, ну что ж теперь, повеситься что ли. Делайте не rs.AddNew, a cn.Execute("insert ... Описанное поведение с system_user не подтвердилось. У меня все работает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2001, 23:31 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
По поводу UDF. Возвращаемое значение в виде Domain_name\User_name наблюдалось и в QA и в EM только при Windows authentication. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2001, 11:37 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Ине удалось снести MDAC 2.6 менее радикально: просто грохнул каталои C:\Program Files\Common Files\SYSTEM\ADO, ...\Msadc, ...\ole db и переинсалил MDAC 2.5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2001, 18:10 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
2 Дед маздай. А что у тебя с курсорной библиотекой все в порядке? И Instead-триггеры нормально работают? Может, зашлешь библиотеку на мыло? Вот адрес: hydro@corbina.ru Насчет cn.Execute - я не понял, ты предлагаешь переписать все ADO-компоненты (речь идет об ADO в Delphi5), которые стандартно используются для работы с MS SQL? Или отказаться от использования готовых компонентов и лепить свои? Можно, кончено, обойтись и без компонентов, и даже без языка высокого уровня (колупать на асемблере), и даже без SQL-сервера... Но все-таки хочется не громоздить себе проблемы, а иметь возможность быстро и эффективно их решать. Только одна проблема - невозможность полноценного использования Enterprice Manager - разве эта проблема такая маленькая, что на нее можно махнуть рукой? Без обид. Предлагаю помогать друг другу (по возможности), а не просто отмахиваться. И еще. Реализация бизнес-логики на сервере преследует не одну, а множество целей. Одна из них - обеспечить одинаковую обработку и механизмы авторизации при доступе к данным ИЗ РАЗНЫХ ПРИЛОЖЕНИЙ И РАЗНЫМИ СПОСОБАМИ. Так что, на это тоже махнуть рукой? А если какой юзер полезет в базу из WORD-а, не установив нужных библиотек и не прочитав предварительно сообщения на данной конференции? А если он просто полезет в базу с помощью Enterprise Manager-а (который не работает)? Несколько туманная (для меня, по крайней мере), присказка относительно белого бычка. На конфе в вопросе была просьба сообщить, у всех ли этот эфект проявляется. По части неполноценности Instead-триггеров было подтверждение, что глючат не только у меня. По SYSTEM_USER были сообщения, что глюк не подтверждается. Не было ни одного сообщения о том, что Instaed-триггеры у кого-то работаю нормально (именно в описанных условиях). Следует ли фразу про бычка понимать так, что у всех все работает нормально, и вопрос поднят на пустом месте? Кстати, SYSTEM_USER у меня тоже нормально работает, до тех пор, пока его не воткнешь в UDF, которая вызывается в качестве значения по умолчанию в одном из столбцов таблицы. Я не уверен, что сообщения о не подтверждении второго глюка пришли после имитации именно указанных условий для его возникновения. Для ясности. Я - автор поднятого вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2001, 22:33 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
По поводу вопроса про установленные у меня курсорные библиотеки и того, что я предлагаю. Мне казалось, что это ясно из предыдущих сообщений, но тем не менее. Курсорные библиотеки у меня такие же. Соответственно, эффект с instead-of триггерами воспроизводится как он есть. В ближайшее время от него никуда не деться. Вам не принесут завтра на дом dllину с hotfixом. Пока этот баг не исправлен, я предлагаю не скулить, а искать обходные пути решения. Если работа с курсорами жестко зашита в Ваших компонентах, а делать руками ничего не хочется, если Вы находите больший смысл в смаковании проблемы, нежели в ее разрешении (хотя бы частичном и неидеальном на данном этапе) - sorry, мой совет не для Вас, можете плакаться дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2001, 19:57 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Толи я невнятно объяснил суть вопроса, толи меня невнятно поняли. Суть вопроса состоит в следующем. Выявлены два неких бага. Необходимо определить причину их возникновения - либо виноваты кракоделы, либо MS. Если первое, то проблема устраняется установкой нормальной версии MS SQL-2000. Если второе, то проблема не устраняется вовсе (по крайней мере, до выхода SP, патчей e.t.c.). Теперь по сути. Совершенно неожиданно для себя я нашел ответ на перечисленные вопросы. Мне подвернулась версия MS SQL Server-2000, в которой не проявляется ни первый, ни второй баг. Так что, решение сей проблемы сводится к установке сервера с нормального дистрибутива вкупе с клиентскими утилитами. Огорчает то, что ответ был найден НЕ на данной конференции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2001, 15:04 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Great! Так и запишем. MS вычеркивает ложную тревогу из списка bugs to fix in SP1. Если кто-нибудь еще начинает выступать по поводу этих граблей, растолковать оному, что сие не баг, но коряво крякнутый дистрибутив. При необходимости сослаться на А.Гордиенко (hydro@corbina.ru). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2001, 00:05 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
А нельзя ли ссылочку? Я полазил по сайту MS, но не обнаружил ни сообщения о BUG-е, ни SP1 для MS SQL SERVER-2000. Кстати, не вы ли пишите сервиспаки для MS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2001, 22:06 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Можно. Летом. Во 2-й половине, я думаю. Если я еще не совсем забыл русский, то "пишИте" - это призыв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2001, 11:14 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Garya, если у Вас еще не пропало желание выявлять баги, Вы можете поучаствовать в программе тестирования Service Pack 1 к SQL Server 2000, для чего в ближайшие 2 дня отправьте по адресу rusdev@microsoft.com следующую информацию (на английском языке): First Name: Last Name: Company: Country: Address 1: City: Postal Code: Phone Number: Internet Email Address: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2001, 16:33 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Я с удовольствием. Но поскольку в качестве официального участника я новичок , прошу подсказать - участвовать может кто угодно или только те, кто официально приобрел MS SQL Server-2000? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2001, 16:09 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Официально, Garya. П.ч. все иное не есть приобретение, а просто демонстрирует неуважение к разработчикам, создающим не самую плохую, в общем-то, вещь. Sorry, я не хотел бы читать мораль и затрагивать здесь вопросы, отличные от программных. Хотя это действительно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2001, 12:34 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Полностью с Вами согласен. Однако, MS позволяет себе большие вольности по отношению к пользователям. В частности, продажа за деньги продуктов, которые по глючности не всегда дотягивают до бета-версии. Если уж тратить деньги, то не на кота в мешке. Предпочитаю сначала его из мешка вынуть и пощупать. А уже после покупать, если выяснится, что это действительно кот, а не дохлая крыса. Не смотря на прекрасные функциональные возможности Access-2000, я продолжаю использовать Access-97 просто потому, что в A2K не просто много, а НУ ОЧЕНЬ МНОГО глюков. Имеет ли смысл его покупать, если даже за бесплатно использовать не всегда захочешь? Я предвижу ваши возражения о том, что официальные пользователи имеют техническую поддержку. Однако, сроки ожидания этой поддержки (в плане исправления выявленных багов) могут превысить чашу терпения руководства, которому проект нужно было сделать еще вчера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2001, 16:26 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Выходит если я при тестировании официальной пробной версии продукта обнаружу глюк, мне о нем легче сообщить ближайшим конкурентам, чем разработчику. Тогда наверное быстрее исправят. А я ничего в этом случае противозаконного и аморального не сделаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2001, 17:17 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Ну, я этого не говорил. Хотя такие приемы, IMHO, вполне допустимы, только с предварительным сообщением разработчику и лишь после того, как убедишься, что разработчик не горит желанием устранять глюки. Не знаю как вы, а я уже раз обжегся. Купил 1С:Предприятие. Официально. А в нем багов оказалось море. Полгода потратил на слаломление вокруг них. Сообщал о них в 1С. Информацию принимали к сведению, и ничего более. Какие-то мелочи подправляли. А потом я обнаружил баг в языке запросов (видать, я на баги везучий ) - это было последней каплей. Плюнул и стал писать новую программу. Кстати, из 12 багов выявленных мной в версии 7.5 в версии 7.7 устранены только два (наименее существенных). Конечно, 1С - не MS, но стиль схожий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2001, 19:28 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
To Дед Маздай. Не везет, так не везет. Один мой знакомый принес дистрибутив, и сказал, что он максимально пропатченный из каких-то дебрей самого MS. Простенький тест показал, что баг с Instead-триггерами не проявляется. Это было месяца три назад. Однако, сегодня баг все-таки опять проявился. Я пришел к выводу, что проявляется он нестабильно. Причин, от которых зависит его проявляемость, пока не нащупал. To All. Избегайте делать DBGrid-подобный интерфейс на VIEW, построенных на нескольких таблицах. При попытке удаления записи из VIEW, которая должна была привести к удалению записи из главной таблицы я получил удаление из нескольких таблиц одновременно. Даже из той, которая фигурирует в подзапросе (!!!). INSTAED-триггеры не спасают по причине вышеозначенного бага - сетевые библиотеки сами формируют команды на работу с таблицами в обход VIEW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2001, 10:10 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Небольшое дополнение по поводу VIEW, построенного на нескольких таблицах. Как было сказано выше, трабл обходится выдачей команд "delete from MyView where ID=..." и прицепливанием ко view instead-триггеров (иначе будет ругаться, что не может выполнить такую команду, поскольку view построен на нескольких таблицах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2001, 14:10 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
ХВАТИТЬ .....!!!!!!!!! ГЛЮК, ГЛЮК, МАСТ ДАЙ. ХЕЛП ЧИТАТ НАДО. CREATE VIEW ... [ WITH < view_attribute > [ ,...n ] ] AS < view_attribute > ::= { ENCRYPTION | SCHEMABINDING | VIEW_METADATA } VIEW_METADATA Specifies that SQL Server will return to the DBLIB, ODBC, and OLE DB APIs the metadata information about the view, instead of the base table or tables... Вот и ВСЁЁЁЁЁЁЁЁ, и заработают ваши триггеры на взгляды!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2001, 08:15 |
|
||
|
Variant, UDF и Instead-триггеры, цепляемые ко view
|
|||
|---|---|---|---|
|
#18+
Соблюдайте спокойствие PLS!, а то ветку жалко закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2001, 08:23 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3569&tid=1826483]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 291ms |

| 0 / 0 |
