![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка совметсного использования [RefreshRecord] и [PacketRecord] [D7, Access]
pulp © (2004-05-11 04:50:00)Приветствую уважаемые.
Ошибка совметсного использования метода [RefreshRecord] и свойства
[PacketRecords] отличного от -1 компонента [ClientDataSet].
Если у нас свойство [PacketRecords=10] и мы хотя бы раз выполнили
метод [RefreshRecord], то при получении следующего пакета данных
[GetNextPacket] возникает эксцепшн типа "Access violation".
Не знаете ли как лечить?
pulp (2004-05-11 11:18:00) [1]БД на access'е.
На сервере НД на ADO.
Клиент конектится на SocketConnection.
Прога проста как .....
Есть ещё вопросы, задавайте.
С уважением...
sniknik (2004-05-11 10:53:00) [2]для чего используется, мне неважно (может комунибудь другому ;)
важно (для меня)
используемые компоненты/технологии/движки/действия приводяшие к AV
с обоих сторон
причем если используется движок BDE, то тут я пас, также как и в некоторых других случаях.
(по описаному повторить невозможно, и пытатся не буду, сколько раз натыкался говорят неработает,.. делаю,.. работает и без проблем. проблема чаще не в том что так не работает а в реализации)
pulp (2004-05-11 10:16:00) [3]Ну господа ужаваемые, помогите хоть какими-нибудь мыслями.
pulp (2004-05-11 09:10:00) [4]> sniknik [1]
Для информации: свойство [PacketRecords] используется для того, чтобы, при просмотре клиентом таблицы, не передавать ему все записи, а только ограниченное их количество, что очень даже положительно сказывается на скорости (особенно на низких скоростях передачи данных).
PacketRecords=-1: передаются все записи;
PacketRecords=0: передаются только метаданные;
PacketRecords>0: передаются PacketRecords записей;
Пусть мы получили первую порцию данных (напр. 20 записей). Второю порцию мы не получим, пока клиент не доберётся до последней записи, после чего автоматически передаётся следующая порция данных.
Если в первой порции данных мы выполнили метод [RefreshRecord], то при попытке получить следующую порцию возникает ошибка. Лечится только методом [Refresh] или переоткрытием НД, но тогда теряется весь смысл данного свойтсва.
С уважением...
sniknik (2004-05-11 08:48:00) [5]не прерывай получение данных в середине, делай обновление после окончания (какой смысл обновлять еще неполученные данные? уже изменились?)
конкретнее можно будет сказать если ты опишеш действия для того чтобы повторить ошибку.