![]() |
|
|
![]()
|
|
| Avers |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 20.6.2008 Где: 26rus Репутация: нет Всего: нет |
Использую TADOConnection для подключения к MS SQL 2005.
Необходимо: уменьшить время самого подключения (т.е. время от момента запуска программы до момента, когда Connected = True и можно выполнять запрос). По опыту знаю, что время подключения к сетевому серверу иногда занимает "некоторое время" (порой до нескольких секунд). я сам вижу решение в сохранении в файл готового соединения и соответственно чтении из него при создании программы. Видел где-то изходник, как это сделать, но не помню :(. Подскажите, если выбрал неверное решение основной проблемы и как сохранить сединение в файл. *тему поместил в этот раздел из-за вопроса о сохранении компонента в файл --------------------
Born to be wild |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 1 Всего: 3 |
Что значит сохранить соединение в файл. Соединение - это же сессия -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Avers |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 20.6.2008 Где: 26rus Репутация: нет Всего: нет |
Имеется ввиду ADOConnection со всеми параметрами (имя сервера, имя БД и т.п.) целиком хранить в файле.
Т.е. грубо говоря:
Поясню, чего я хочу добиться. По собственному опыту знаю, что если (например, во время тестирования программы) в проекте настроено соединение и открыто, то после компиляции соединение с сервером у такой программы происходит почти мгновенно. Если же (уже во время эксплуатации) при запуске программы появляется окно авторизации, где указываются параметры соединения, то такая коннекция "включается" медленней. Задача: сохранить настроенную коннекцию в файл, чтобы при следующем запусвке программы оставалось лишь открыть ее.
Это сообщение отредактировал(а) Avers - 8.9.2010, 19:40 --------------------
Born to be wild |
||||
|
|||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Потому что Вы уже подключены. По сабжу: даже теоретически, если Вы запишите компонент в файл (с установленным Connected в True), а соединения нет - его придется устанавливать и затрачивать время. Это сообщение отредактировал(а) Keeper89 - 8.9.2010, 20:27 |
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 1 Всего: 3 |
угу, согласен с Keeper89 -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
toAvers: в файле сохраняется не соединение, а его параметры, ускорять подключение нужно другими путями
|
|||
|
||||
| Avers |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 20.6.2008 Где: 26rus Репутация: нет Всего: нет |
А если соединение есть? Или я что-то не так понял?
А можете подсказать, в каком направлении работать? Работа, желательно, должна происходить следующим образом: приложение один раз запускается с нужными параметрами подключения к серверу, а далее много раз запускается (запуски кратковременны) с параметрами для выполнения некоторой команды. Т.е. параметры подключения нужно присвоить всего однажды (может быть, когда-нибудь они изменятся, но это будет очень редко). --------------------
Born to be wild |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
toAvers: после выполнения запроса не обрывать подключение. это все, что можно сказать исходя из той информации, которую дал
направления - посмотреть, что загружается при подключении, может что-то можно исключить, улучшить соединение (аппаратные и сетевые настройки) от клиента к серверу, может подключение порой тормозит из-за перегруженности сервера |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 3 Всего: 133 |
Avers, вот расскажи, а сервер откуда будет знать что у клиента что-то там уже сохранено? Откуда серверу знать только по одному запросу "пусти" что у клиента все с собой, в кармане, и вообще "он тут уже был и ему теперь всегда можно"? В любом случае серверу потребуется попросить паспорт (запросить идентификацию), сверить фото с физиономией (сверить идентификационные данные с правами доступа), принять решение, пропустить/отказать, дождаться ответа от клиента о том, что он еще не передумал. Одного "пусти, я прошлый раз тут был и все сохранил с собой" не хватит. А вдруг что-то поменялось? Вдруг вчера было можно, а сегодня уже передумали? Ты просто не совсем понимаешь разницу между понятиями "настройки соединения" и "установленное соединение".
Это как разговор по телефону. Ты не сможешь поговорить пока твой собеседник не согласится на разговор и не поднимет трубку. Если он уже однажды поднимал, то это не говорит о том, что ты можешь сохранить соединение, и в следующий раз в любое время вернуться к разговору мгновенно. Все-равно нужно будет сделать звонок, получить согласие собеседника на разговор и установить соединение. Так что все-равно придется ждать. Другое дело, если сделать коннект сразу при запуске программы. Да еще в отдельном потоке. Пока пользователь будет тыкаться по менюшкам, программа сама соединится и все загрузит. Юзер ничего и не поймет. Ну или сделать сплеш-заставку (как это делает, к примеру, 1C). -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Avers |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 20.6.2008 Где: 26rus Репутация: нет Всего: нет |
Разницу знаю. Просто готов был уступить (не сохранять/читать компонент вместе с Connected=True, а сохранять хотя бы настройки, т.е. незначительная, но все же оптимизация). Спасибо, вы меня поняли, подсказали направление) помогло) Удалось сохранить) Программа запускается много раз, кратковременно (для выполнения команд SQL на сервере). Поэтому "пусти, я прошлый раз тут был и все сохранил с собой" - говорит о том, что с вероятностью ~1 все пройдет успешно, если я открою соединение снова. Получилось
Сохраняется аналогично Это сообщение отредактировал(а) Avers - 10.9.2010, 14:34 --------------------
Born to be wild |
||||
|
|||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
как интересно, а можно подробней?
какое подключение, как выполняются запросы, что именно сохраняется? |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |