aida |
Отправлено: 08.12.2005, 16:53 |
|
Не зарегистрирован
|
Добрый день!
У меня есть селект в котором фактически открывается два раза одна и та же база (glav). Код:
SELECT glav.rela as rela,RTRIM(ispoln.Name) AS ispoln_Ispoln, rtrim(fio.FioS) as fio_Fio FROM glav
INNER JOIN glav glav_1 ON glav.Ispoln = glav_1.Uin
INNER JOIN ispoln ON ispoln.Uin = glav_1.Ispoln
INNER JOIN fio ON glav_1.Fio = fio.Uin
Селект работает нормально, НО я столкнулась с одной проблемой, выяснилось, что я не могу изменить поля в этом селекте. Я работаю с компонентами TADOQuery и TDBGrid, с селектом я работаю как с обычной таблицей, то есть методы Edit и Post. При применении Post вылетает ошибка:Не удается найти строку для обновления.Некоторые значения могли быть изменены со времени ее последнего чтения
Я думаю, что это из-за того, что у меня открыто 2 раза одна и таже база, как мне выкрутиться из этой ситуации?
Сейчас я делаю изменения через TADOCommand используя команду update, а потом обновляю запрос, но это не очень красиво, двгрид прыгает, и для пользователя это неудобно.
Помогите пожалуйста |
|
olegenty |
Отправлено: 12.12.2005, 08:58 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
TMemTableEh (клиентский набор данных) + TADODataDriverEh (компонент, содержащий команды выборки, вставки, обновления, удаления, обновления текущей записи) + TADOConnection (или без этого компонента, поскольку TADODataDriverEh умеет работать со строкой подключения) = необходимое поведение.
|
|
|