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

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

Помогите с Locate/// [D5, MSSQL]


Vats ©   (2002-09-10 10:32:00) 

При переводе базы данных с Access 97 на MS SQL 2000(соединение ODBC-BDE) возникла проблема: функции Locate и Lookup не срабатывают на таблицах с большим количеством полей (в нашем случае, в качестве аргумента передается 10 полей).Но при установки свойства CachedUpdate в true Locate срабатывает, но запись в базу не происходит при добавление.


Vats   (2002-09-10 14:05:00) [1]

Проблема в следующем:
в рамках выполнения транзакции (при установленном CachedUpdate=false для таблицы)осуществляетвляется добавление и редактирование записей в таблице. В случае успешного выполнения транзакция подтверждается, в противном откатывается.
Внутри этого блока используется Locate для поиска записи(при коректной работе Locate и не нахождении записи должно осуществится добавление записи в таблицу), а т.к. Locate не сработал и не нашел запись в таблице программа пытается добавить эту запись в таблицу, а на ней стоит индекс из 10 полей и сервер начинает ругатmся.
Дело в том, что для простых таблиц Locate срабатывает, а для таблице на которой стоит индекс из 10 полей, он работать не хочет!!! Почему и причем здесь CachedUpdate?


KMZ   (2002-09-10 12:01:00) [2]

а по конкретней не можешь написать


VAleksey   (2002-09-10 11:48:00) [3]

ApplayUpdates вызываешь ?
В режиме кэшированных обновлений это нужно делать чтобы изменения сохранялись.


Наверх

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