![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.02.2010
Сообщений: 18
|
![]()
Всем Здравствуйте!
Начну с того что есть у меня база, в которую льются данные по ODBC из внешней программы. Моя процедура вытаскивает определенные данные из базы, калькулирует их, и выводит в соотв-ие текстбоксы формы. Происходит это с помощью рекордсета вот так: Код:
Итак сформулирую вопросы: 1) Каким методом зациклить процесс постоянного вывода данных из базы? 2) Как ускорить выполнение процедуры? Последний раз редактировалось wallstreet; 18.03.2010 в 19:23. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте wallstreet.
1. ответ однозначный - таймер. 2. этот вопрос однозначного ответа не "достоин": а) отказаться от применения DAO и создавать подключение с помощью ADO б) отказаться от перебора записей в) если не требуется специфических возможностей MS Access выполнять задачу в Excel примерно так в общих чертах я вижу решение задачи. Евгений. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
![]()
Если сначала создать запрос, результатом которого будет последняя запись, а потом открыть рекордсет, ИМХО будет быстро
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 22.02.2010
Сообщений: 18
|
![]()
спасибо за ответы.
Если подскажете как это сделать с помощью ADO буду примного благодарен. |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте wallstreet.
возможно пример будет лучше чем "подсказка" ![]() Удачи Вам. Евгений. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 22.02.2010
Сообщений: 18
|
![]()
Супер.. Большое спасибо..
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 22.02.2010
Сообщений: 18
|
![]()
Еще раз здравствуйте!
Итак работает все как было задумано, однако заторможенность осталась примерно 3-4 сек (против прежних прим. 12-17 сек), что замечу уже огромное достижение!!!!!!!! Только вот смущает один момент.. Под каждый запрос, пишу отдельную функцию (connDB1, connDB2, connDB3 ....), а соответственно создаю отдельный коннект с базой делаю выборку и закрываю. А не будет-ли более продуктивно, с точки зрения скорости выполнения задачи, создать один коннект и под него сделать сразу все запросы и насколько? |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте wallstreet.
В Ваших словах ".. не будет-ли более продуктивно..создать один коннект.." безусловно есть логика. По аналогии с понтонным мостом, строить и разбирать для каждой переправы гораздо затратнее и по времени конечно тоже, чем строительство одного моста для всех желающих переправиться через реку. Если источник один и тот же создавайте и открывайте единственное подключение, и только после выполнения всех запросов можете его закрыть. "Можете" в случае если для канала связи (при сетевом подключении) данное подключение будет чрезмерной нагрузкой, для БД заданная в строке подключения блокировка, вполне "безобидна", ничего страшного не произойдет если подключение будет закрыто по завершению работы приложения, а не будет создаваться, открываться для получения каждой порции данных и сразу закрываться, как это происходит при работе с WEB сервером. Евгений. Последний раз редактировалось Teslenko_EA; 22.03.2010 в 17:53. |
![]() |
![]() |