![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
про TCalientDataSet.ApplyUpdate
LeReve © (2003-07-17 17:44:00)народ, подскажите пожалуеста как приминить ApplyUpdate только к текущей записи, а то если поместить ApplyUdate в обработчик TDataSource.OnDataChange то она долго отрабатывается
abc (2003-07-18 23:33:00) [1]спасибо!
AkaSaint (2003-07-18 21:29:00) [2]Клиенту(TClientDataSet) во время выполнения ApplyUpdates выскочит событие OnReconcileError. В этом обработчике, я думаю, ничего не останется, как сообщить пользователю, что запись была изменена или удалена другим пользователем. Или, потому что в обоих случаях будет ошибка "Row cannot be located for update...". Потом обновить данные пользователю, и он увидит, что запись исчезла...
abc (2003-07-18 11:44:00) [3]спасибо, а если например один удалит запись а другой в это время пытается её изменить тогда как эту ошибку лучше отрабатывать?
AkaSaint (2003-07-17 22:53:00) [4]Сколько записей было изменено:ClientDataSet.ChangeCount
Насчет второго, я думаю, нужно, чтобы в твоем ADOTable (или Query) был создан список полей, и задано в ProviderFlags, какие ключевые. ProviderFlags, UpdateMode объясняются в статье про MIDAS на www.rsdn.ru.
Lereve (2003-07-17 21:17:00) [5]а как определить сколько записей было изменино?? долго это секунды полторы, но когда набераешь текст в гриде и по нажатию на энтер чувствуется задержка, кстате почему не удаётся работать через ADO если в провайдере UpdateMode равно upWhereKeyOnly, при попытке вызвать ApplyUpdate выдаёт ошибку "Unable to find record. No key specified"
AkaSaint (2003-07-17 18:50:00) [6]Насколько я знаю, никак... Долго, это сколько? А чем тебя не устраивает накопить некоторое количество записей и потом сделать им всем ApplyUpdates?