|
Работа с MSSQL2000 через ADO
|
|||
---|---|---|---|
#18+
Работа с 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. При проверке работы сервера - не выявил каких-либо сервере ни каких непоняток все работает нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2002, 19:15 |
|
Работа с MSSQL2000 через ADO
|
|||
---|---|---|---|
#18+
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) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2002, 06:04 |
|
Работа с MSSQL2000 через ADO
|
|||
---|---|---|---|
#18+
SET NOCOUNT ON у меня имеется. А вот второе видать глюк ADO - где-то я читал про этот баг. Но видно как говорится опыт приходит в бою. P.S. Огромное СПАСИБО всезнающим знатокам протянувшим руку помощи новичкам блуждающим по потемкам программирования !!!!!!!!!!!!!!!!!!!!!!!!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2002, 18:05 |
|
|
start [/forum/topic.php?fid=58&msg=32028028&tid=2120026]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 311ms |
total: | 436ms |
0 / 0 |