powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Обновленные триггером значения полей невидимы клиентом
6 сообщений из 6, страница 1 из 1
Обновленные триггером значения полей невидимы клиентом
    #32031748
Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Существует таблица из 2-х полей ID - первичный ключ (не IDENTITY) и Name - строковое.
Есть в таблице триггер instead of insert, который берет из другой таблички число и вставляет его в поле ID. Короче говоря, своя собственная реализации IDENTITY. Так вот проблема заключается в том, что после срабатывания триггера в Делфийском гриде в поле ID отображается ноль. После перечитывания таблицы все становится нормально, то есть запись в базе создается нормально. Проблема в том, как заставить сервер сообщать, что содержимое поля изменилось, тому клиенту, который эту запись вставляет? Из-за того, что неизвестно значение первичного ключа для вставленной строки, не удается ничего с этой строкой сделать.
...
Рейтинг: 0 / 0
Обновленные триггером значения полей невидимы клиентом
    #32031761
C/\OH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Особенность клиент-сервер типа приложения заключается в том, что сервер вообще НИЧЕГО не сообщает клиенту без запроса клиента. Так что скорее всего надо просто переписать клиента, чтобы тот после UPDATE делал обновление значений. Сервер заставить это сделать никак нельзя.

Слон
...
Рейтинг: 0 / 0
Обновленные триггером значения полей невидимы клиентом
    #32031790
Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну хорошо. А как тогда клиент узнает, что произошла вставка например? Отработало событие BeforeInsert или AfterDelete? Как-то информацию от этом клиент получает? Я так предполагаю, что это работает через механизм NOTIFICATIONS. В общем, может ли клиент определить, что сработал триггер?
...
Рейтинг: 0 / 0
Обновленные триггером значения полей невидимы клиентом
    #32031793
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой механизм реализован именно в Delphy, сказать не могу.

Общая идея:

Как правило, если триггер не срабатавает, то предусматирвается сообщение об ошибке RAISERROR("Ошибка триггера",16,10) с откатом всех внесенных изменений (ROLLBACK TRANSACTION)

Генерация подобной ошибке отлавливается (автоматически) клиентской частью с соответсвующей реакцией.

Поищи, обязательно должен быть обработчик ошибок. В данном случае, если не сработает триггер, то просто не произойдет создание новой записи.
...
Рейтинг: 0 / 0
Обновленные триггером значения полей невидимы клиентом
    #32031874
C/\OH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное можно просто делать refresh таблицы, но я не уверен. Все зависит от того, насколько много записей возвращается.
...
Рейтинг: 0 / 0
Обновленные триггером значения полей невидимы клиентом
    #32031925
Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В этом случае Refresh не помогает. Только ReQuery. А ReQuery это труба в данном случае. Мы нашли другой выход. Если поле ID объявить как IDENTITY и разрешить его перезапись в триггере, то тогда клиент получает правильное значение первичного ключа. Вопрос почему?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Обновленные триггером значения полей невидимы клиентом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]