Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Delphi7 ADO MSSQL2k [D7, MSSQL]


vani ©   (2007-02-19 13:50:00) 

Накопавшись целый день в тырнете и не найдя ответа, решился таки попросить у всемогучего великого разума помощи в решении на первый взгляд непростой задачки...

Дано:
-------------------------------------------
DBGrid ADOQuery1 Server KeySet Cursor

Запрос вида SELECT * FROM dbo.view

view вида:

SELECT a.abonent_id, a.name, s.name
FROM abonent a
INNER JOIN street s ON a.street_id = s.street_id

1. делаю ADOQuery1.Open;
2. делаю ADOQuery2.ExecSQL (UPDATE abonent SET name = xxxxx WHERE abonent_id = y)
3. делаю ADOQuery1.Refresh;

Все отлично. Значение поля a.name меняется в DBGrid, курсор работает.

Задача:
-------------------------------------------

1. делаю ADOQuery1.Open;
2. делаю ADOQuery2.ExecSQL (UPDATE abonent SET street_id = x WHERE abonent_id = y)
3. делаю ADOQuery1.Refresh;

Все плохо. Имеем старый s.name : (

Вопрос:
-------------------------------------------
Может кто сталкивался с обновлением полей join таблиц в _серверном_ курсоре?

С resync наигрался. Не помогает.

unique table client side, requery, close, open, active/false/true не подходят для данной задачи.

Спасибо всем откликнувшимся.


vani   (2007-03-01 15:43:00) [1]

тю...
ну это-то точно не при чем :)


alex888   (2007-02-27 13:06:00) [2]

Может поможет
UPDATE STATISTICS ?


vani   (2007-02-23 13:44:00) [3]

Механизм доступа к сожалению не поменять (многое чего придётся поменять)... : (

Явное указание начала/подтверждения транзакции при update тоже не помогла... : (


fd979   (2007-02-20 12:39:00) [4]

BEGIN TRANSACTION
...
COMMIT TRANSACTION


Fay   (2007-02-20 02:35:00) [5]

используй AnyDAC, забудь печаль


vani   (2007-02-19 15:36:00) [6]

хм... а как мне поможет триггер на вьюхе в обновлении записи? точнее что мне в триггере делать-то? :-/


Gin2   (2007-02-19 15:26:00) [7]

а почему не триггер на вьюхе?


vani   (2007-02-19 15:24:00) [8]

в базе все ок. requery, например, работает, но оно нам в серверном курсоре не подходит... :(


Gin2   (2007-02-19 15:12:00) [9]


> Все плохо. Имеем старый s.name : (

а в базе что? мож транзакция не подтверждена?


Наверх

Титульная страница Поиск, карта сайта Написать письмо