![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как грамотнее открывать/закрывать соединение с базой [MSSQL]
Ольга © (2005-08-07 09:24:00)В программе есть TreeView, на каждый click идет запрос к базе.
Открываю ADOConnection на FormCreate, закрываю на FormClose.
А не правильнее ли открывать/закрывать соединение на каждый click? Ведь пользователь может открыть форму и пойти пить чай - зачем держать соединение открытым. С другой стороны, а если не пойдет пить чай - зачем дергаться на каждый click?
Ольга (2005-08-07 11:10:00) [21]Нет, это отупение после месяца работы по 12 часов в день без выходных.
Спасибо.
msguns (2005-08-07 11:07:00) [22]>Ольга (07.08.05 11:03) [3]
>ADOConnection1.Open;
ADOConnection2:=ADOConnection1; - при этом реально будут два соединения с базой или одно
Если надо создать второй экземпляробъекта с такими же свойствами, то используют Assign
Это прикол что ль ?
Ольга (2005-08-07 11:03:00) [23]Речь идет только о чтении данных, но данные должны быть всегда свежими, поэтому одним махом читать нельзя.
Мой пользователь - диспетчер, потому программа должна быть отказоустойчива. Если во время бездействия программы произошел разрыв соединения, пользователь не должен это заметить.
И еще один вопрос до кучи (что-то я сегодня вся в сомнениях):
ADOConnection1, ADOConnection2: TADOConnection;
ADOConnection1:=TADOConnection.Create(nil);
ADOConnection2:=TADOConnection.Create(nil);
...
ADOConnection1.Open;
ADOConnection2:=ADOConnection1;- при этом реально будут два соединения с базой или одно?
msguns (2005-08-07 10:43:00) [24]Кстати, если речь идет о "деревянном" справочнике, то, если записей в нем не слишком много (скажем, до 10.000), не проще ли закачивать его "одним махом", при этом не дергая сервак при перемениях-разворачиваниях по узлам дерева ? И повесить кнопульку "Перечитать".
msguns (2005-08-07 10:41:00) [25]Смотря что "висит" на соединении. Если читающая транзакция, то нехай себе "висит" до второго пришествия, серверу не внапряг. Переконнетиваться "по каждому клику" - задавать серверу хоть и не слишком большую, но постоянную работу, "заморачивать" его по мелочам.
Если же "висячка" на апдейтах, то это, ИМХО, от наличия кривизны рук и отсутствия царя в голове. Т.е. изменилась запись (юзер вызвал соотв.экшн) - прошла транзакция на запись в БД, закоммитилась и НД перечитан. Сервер "перекуривает". При этом есть ли еще вагоны для разгрузки-погрузки и сколько их (т.е.соединение не закрыто) - его, по большому счету, не колышит.