powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с MSSQL2000 через ADO
3 сообщений из 3, страница 1 из 1
Работа с MSSQL2000 через ADO
    #32028005
Udis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работа с Delphi ADO (modified 0 times) Udis

Прошу помочь ! Создан триггер действия которого является - после INSERT при наличии '1' в bit поле вставляет в некую таблицу запись на основе inserted , на этой таблице также навешены триггеры. На клиенте действия вставки происходит через ADO используя DBGRID. После вставки записи появляется ошибка class EOleExpection 'Row handle referred to a deleted row or a row marked for deletion' - запись не отображает в DBGRID, хотя она на сервере вставляется. Также отрабатывает вставку и во вторую таблицу по триггеру. Вот что интересно когда не отрабатывает часть триггера описаная выше (вставка во вторую таблицу) запись вставляется как и положено .
P.S. При проверке работы сервера - не выявил каких-либо сервере ни каких непоняток все работает нормально.
...
Рейтинг: 0 / 0
Работа с MSSQL2000 через ADO
    #32028028
Dankov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. В триггере первой строкой должно стоять SET NOCOUNT ON
2. Если есть поле IDENTITY, то после того, как триггер куда-то что-то вставил, значение @@IDENTITY, которое затем получит клиент, будет отличаться. Клиент по полученному неправильному @@IDENTITY попытается спозиционироваться, не найдет такой записи, и выведет ошибку. Это лечиться таким образом:
В начале триггера значение @@IDENTITY сохраняется в локальную переменную, а в конце триггера делается динамический "пустой" запрос на вставку во временную таблицу, после которого @@IDENTITY выпрямляется. Например,
set nocount on
declare @savident int, @dynsql varchar(255)
set @savident=@@IDENTITY
...<тело триггера>...
set @dynsql='select identity(int,'+cast(@savident as varchar)+',1) Id, 1 Num into #tmp'
exec(@dynsql)
...
Рейтинг: 0 / 0
Работа с MSSQL2000 через ADO
    #32028131
udis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SET NOCOUNT ON у меня имеется. А вот второе видать глюк ADO - где-то я читал про этот баг. Но видно как говорится опыт приходит в бою.
P.S. Огромное СПАСИБО всезнающим знатокам протянувшим руку помощи новичкам блуждающим по потемкам программирования !!!!!!!!!!!!!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с MSSQL2000 через ADO
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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