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