Ado или Bde
Во многих обсуждениях (в том числе и на этом форуме) БДЕ хаят за глючность, необходимость переносить его и настройки, народ советуют использовать АДО – мол и работает оно поумней и багов поменьше. Попробовал действительно, приятное по сравнению с БДЕ появилось, но вот интересный момент: есть одна таблица подключаю через БДЕ Table -> DataSource ->DBGrid, Батоном активирую секунда и таблица загружена. A то же самое с ADOTable -> DataSource ->DBGrid длится секунд 10. Насколько понял, происходит это из-за того что БДЕ считывает базу покадрово, а АДО вроде-бы всю.
Так ли это?
Есть ли где толковый электронный учебник по ADO?
БД занимаюсь немного, поэтому вопрос может показаться банальным. Есть БД с распределенными файлами (На рашареном диске файл БД, а на остальных машинах клиентские приложения на БДЕ). Возникла необходимость по всякому эти данные между собой сопоставлять. Объем данных, гоняемых, по сети существенно возрос. На серверные БД пока перейти не можем из-за прихотей горячо любимого руководства ?
Во многих обсуждениях (в том числе и на этом форуме) БДЕ хаят за глючность, необходимость переносить его и настройки, народ советуют использовать АДО – мол и работает оно поумней и багов поменьше. Попробовал действительно, приятное по сравнению с БДЕ появилось, но вот интересный момент: есть одна таблица подключаю через БДЕ Table -> DataSource ->DBGrid, Батоном активирую секунда и таблица загружена. A то же самое с ADOTable -> DataSource ->DBGrid длится секунд 10. Насколько понял, происходит это из-за того что БДЕ считывает базу покадрово, а АДО вроде-бы всю.
Так ли это?
Есть ли где толковый электронный учебник по ADO?
Симптомы: при открытии таблицы с несколькими десятками тысяч записей, находящейся в файле БД Access, с помощью TADODataSet->Open() перестают обрабатываться сообщения окна, все тормозит. Полностью операция открытия завершается через 10-20 секунд. Что можно сделать?
Решение: перед открытием таблицы необходимо отключить все вычисляемые поля, в TADODataSet->ExecuteOptions выставить eoAsyncExecute в true, и после завершения открытия таблицы в обработчике события AfterOpen TADODataSet перерисовать элементы управления для отображения данных (вызывать TDBGrid->Refresh(), например).
Решение: перед открытием таблицы необходимо отключить все вычисляемые поля, в TADODataSet->ExecuteOptions выставить eoAsyncExecute в true, и после завершения открытия таблицы в обработчике события AfterOpen TADODataSet перерисовать элементы управления для отображения данных (вызывать TDBGrid->Refresh(), например).
Спасибо за помощь. В данном случае в ADOTable вычисляемых полей нет. Базы ДБФ, когда выставляю
eoAsyncExecute в true.Появляется ошибка: A connection component required for async Execute options. И соединения не присходит. Базу соединял с помощью Connection String
Спасибо за помощь. В данном случае в ADOTable вычисляемых полей нет. Базы ДБФ, когда выставляю
eoAsyncExecute в true.Появляется ошибка: A connection component required for async Execute options. И соединения не присходит. Базу соединял с помощью Connection String
А в чем у тебя База?
А в чем у тебя База?
Клипперовская база в формате DBF, какая весия точно ссказать немогу,работаю с драйвером DBF IV или V
Клипперовская база в формате DBF, какая весия точно ссказать немогу,работаю с драйвером DBF IV или V
Блин это хуже. Там действительно такие мульки не проходят. Еще там с тэговыми индексами в ADO проблема. Как то хреново он их понимает (правда BDE не понимает совсем). Но твое предположение относительно скорости совершенно верное - ADO все сразу к себе прет. Я советую поэксперементировать с драйверами (провайдерами). У Microsoft там их как минимум 2 для DBase и еще есть для Fox-а.И еще некоторые проблемы уходят, если подключаешься через ODBC.