kms писал(а) 10. Октября 2007 :: 12:11:Ну на SQL базах и ТП и штатные контролы себя так ведут - там тянуть нельзя, можно только мотать, вверх-вниз, по строчке или по странице.
Это первое, что огорчает пользователей при переходе на SQL

И, в принципе, в динамическом провайдере OLEDB скорее всего будет так же.
А вот насчет динамического провайдера еще не понятно

Во-первых, если мы ходим по таблице целиком без применения фильтров, то количество строк получить не сложно. А вот если с фильтрами (какой-то журнал документов или группа справочника), то непонятно, как получить количество строк. Но ведь одинэсина это как-то делает? В ДБФ ведь работают ползунки. И ведь не тормозят, падлы
kms писал(а) 10. Октября 2007 :: 12:11:Можно, к примеру, внести в интерфейс "QueryRows" вирт. метод "промотать n строк", пустой для SQL провайдеров - а для произвольных будет очень эффективно (fetch цикл будет не нужен).
Я помню, ты что-то такое и предлагал.
Ага, только я говорил не про "промотать", а "получить N строк, но сместившись от данной на M строк". Что, в принципе, эквивалентно "промотать" + "получить N". Просто у меня перед глазами была функция "IRowset::GetNextRows" от OLE DB.
kms писал(а) 10. Октября 2007 :: 12:11:На самом деле, многомодульная архитектура - это такая большая тема

Можно дойти даже до того, что классы с данными нельзя передавать между модулями, ибо данные - это детали реализации, непереносимые в общем виде.
А у меня так и сделано в 1С++ и провайдере. Через модули ходит только обертка.
kms писал(а) 10. Октября 2007 :: 12:11: Цитата:А поводу "стратегии управления жизнью строк" нужно вообще хорошо подумать. Может и правда лучше будет все сделать на COM, чтобы провайдеры можно было химичить на чем-нибудь типа VB/Delphi, чтобы народ потянулся
Глобально

Может быть сначала для народа сделать прокси-поставщика, с открытыми интерфейсам...
Но тема нужная, лучшие люди уже высказывались за
Да я что-то такое и имел в виду, только меня переклинило малость