![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
странное поведение связки SQLQuery-DatasetProvider-ClientDataset [D7, FB1.03]
Desdechado © (2004-05-12 17:01:00)1. текст запроса присваивается в Run-time (параметрический или нет - одинаково) ClientDataSet.PacketRecords=-1 - все работает корректно
2. текст запроса присваивается в Run-time (параметрический или нет - одинаково) ClientDataSet.PacketRecords>0 - все работает корректно
3. текст запроса задается в Design-time и он НЕпараметрический, то при любом ClientDataSet.PacketRecords все работает корректно
4. если запрос задается в Design-time и он параметрический, то при свойстве ClientDataSet.PacketRecords>0 странности такого рода: вычитывается первая пачка, после нее вычитывается следующая пачка, но содержит она данные первой пачки, следующая - снова из первой и так до тех пор, пока не вычитает столько записей, сколько штук было в изначальной выборке (НП: 64 записи, 2 одинаковых пачки по 30 + пачка из 4 первых записей).
Смотрел SQLMonitor'ом, происходит закрытие датасета на границе пачек и его переоткрытие, хотя никаких подобных команд не даю. Все, кроме указанных изменений параметров, способов их присваивания и величины пакета для всех 4 случаев одинаково.
Что подскажете?
Desdechado (2004-05-21 15:55:00) [1]видимо, так глубоко никто не копает, предпочитают искать обходные пути, а не докапываться до причин
жаль :(
буду сам рыть
Desdechado (2004-05-19 18:19:00) [2]как все-таки обработать такую ситуацию (4)?
Desdechado (2004-05-14 21:06:00) [3]up
никто с таким не сталкивался, что ли?
Desdechado (2004-05-13 12:58:00) [4]вопрос открыт
Desdechado (2004-05-12 17:54:00) [5]1. тогда почему 2-я и 3-я ситуация корректно обрабатываются?
2. у меня НЕ stateless application server
div (2004-05-12 17:31:00) [6]When PacketRecords is greater than 0, the client dataset must fetch its data incrementally. If the provider is on a stateless application server, the client dataset must inform the provider where to start fetching data. This communication can occur using a BeforeGetRecords event handler.