![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Медленное выполнение ADODataSet1.Next [D6, MSSQL]
Виктор23 © (2004-12-08 16:39:00)Господа, вот какой вопрос:
Есть ADODataSet1, в нем примерно 50000 записей. Выполнение ADODataSet1.Next тем дольше, чем ближе позиция к концу датасета.
То есть, при последовательном переборе при смещении позиции время выполнения ADODataSet1.Next пропорционально увеличивается. Причем увеличивается значительно(10-20 милисекунд уже к 20000-позиции)
При выполнении ADODataSet1.Recordset.MoveNext такого не наблюдается, что дает основания полагать, что дело все же не в ADO, а в ее дельфовой обертке.
Но нужно использовать именно ADODataSet1.Next.
И у меня вопрос: возможно кто-то сталкивался с этим и знает, в чем тут причина медленного выполнения ADODataSet1.Next?
Может, какое-то свойство нужно установить правильно?
P.S. У TClientDataSet такого не наблюдается. Все происходит влет.
Dok_3D (2004-12-09 11:23:00) [1]2 ocean
>> сделать stored procedure?
Не понял, какая тут связь... Но это не главное.
А главное то, что я нашел, в чем причина.
Если вызвать ADODataSet1.DisableControls, то все происходит влет.
Уряя...
ocean (2004-12-09 10:17:00) [2]может, сделать stored procedure?
Dok_3D (2004-12-08 23:53:00) [3]2 sniknik ©
Обязательно вышлю. Завтра поутру.
sniknik (2004-12-08 21:04:00) [4]Dok_3D © (08.12.04 20:41) [2]
> Причем пробовал даже без базы данных. Делал просто, создавал структуру полей, затем ADODataSet1.CreateDataSet.
можеш прислать этот тест? проверю на 7й дельфе.
Dok_3D (2004-12-08 20:45:00) [5]Виктор23 и Dok_3D[2]- в данном контексте участники одной и той же ситуации. Надеюсь, понятно...
Dok_3D (2004-12-08 20:41:00) [6]2 sniknik
В том то и дело что клиентский. Причем пробовал даже без базы данных. Делал просто, создавал структуру полей, затем ADODataSet1.CreateDataSet.
И добавлял большое количество записей. Все равно, чем дальше от начала датасета - тем драматичней.
Что за напасть ...
sniknik (2004-12-08 17:01:00) [7]курсор клиентский или серверный?
ClientDataSet всегда работает как клиентский.