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

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

Ошибка совметсного использования [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]

не прерывай получение данных в середине, делай обновление после окончания (какой смысл обновлять еще неполученные данные? уже изменились?)

конкретнее можно будет сказать если ты опишеш действия для того чтобы повторить ошибку.


Наверх

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