![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с 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 вызываешь ?
В режиме кэшированных обновлений это нужно делать чтобы изменения сохранялись.