powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как открыть ВСЕ ADOQuery?
14 сообщений из 14, страница 1 из 1
Как открыть ВСЕ ADOQuery?
    #32366032
Савка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть дата модуль, в котором ADOConnection
В нем же процедура:

Код: plaintext
1.
2.
3.
4.
5.
6.
procedure Tdmodule.ADOConnectionAfterConnect(Sender: TObject);
 var
   i : Integer;
 begin
   for i:= 0  to ADOConnection.DataSetCount -  1  do
         ADOConnection.DataSets[i].Active:=TRUE;
 end; 


Не открывает ADOQuery, которые в других модулях и формах.
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366054
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то в свойстве DataSets регистрируються тока активные, читай открытые наборы. Твой код по идеи ничего открывать и не должен. Если нет ни одного открытого набора, связанного с коннекшеном, то DataSetCount вернет 0.
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366229
Vladimir_t2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure Tdmodule.ADOConnectionAfterConnect(Sender: TObject);
var
i:integer;
begin
for i:= 0  to Self.ComponentCount- 1  do
 begin
  if Self.Components[i] is TADOQuery then
     (Components[i] as TADOQuery).Active:=true;
 end;

end;
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366236
sg_sg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Delphi под рукою нету, но можно покопать в следующем направлении

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure OpenADOQueriesInDataModule( dm : TDataModule );
var
i : integer;
begin
 with dm do
  for i :=  0  to ComponentCount -  1  do
   if Components[i] is TAdoQuery then
    if not TADOQuery(Components[i]).Active then
     TADOQuery(Components[i]).Open;
    { if }
   { if }
  { for }
 { with }
end;
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366243
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНе открывает ADOQuery, которые в других модулях и формах.

Автор топика не тока в датамодуле хотел наборы открыть, а во всех формах и модулях. Вот тока непонятно, на кой ляд такое понадобилось?!
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366250
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так пусть по формам ишо пробежица...
Screen.FormCount ...
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366356
Савка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой, блин, че-то оно мне казалось все легче.
автор
Вот тока непонятно, на кой ляд такое понадобилось?!


Каждый раз, при новой компиляции обязательно где-нибудь, что-нибудь да остается неактивным. Приходится открывать каждый модуль, каждую форму, следить за всем.
Раньше все было на BDE -> Session Start, или как там его и все.
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366427
Vladimir_t2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я конечно, могу только догадываться зачем вам понадобилось решение в таком направлении (все открыть в д.м.). Мой опыт располагает вам предложить размещать DataSet - ы в формах там где эти сеты интерфейсно оправданы и далее я открываю сеты на крете формы, а закрываю на OnClose
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366434
Савка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я всего лишь пытаюсь внести кое-какие изменения в существующий (не мной написанный проект). Одно из изменений - перевод с BDE (из-за трудностей установки на многие пользовательские компы) на ADO. И менять в таком случае расположения DataSet пока не охота.
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366440
Vladimir_t2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В этогм случаею, тогда конечно (лучшебы все переделать), перебирайте все активные формы и дата модули (как советывали выше) и активизируйте все дата сеты. Но
Я бы рекомендловал активизировать все дата сеты там где они они необходимы и закрывать где набонность в них отпала.
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366447
Дмитрий Мыльников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замечание первое.
Если DataSet находится не в том же модуле, что и ADOConnection, а в другом, то певрое, что нужно посмотреть, а создана ли уже форма в тот момент, когда происходит подключение и вызывается событие AfterConnect
Дело в том, что это DataSet содержит ссылку на ADOConnect, а не наоборот. И когда создаётся соотвестсующая форма с этим DataSet'ом, то создаётся и сам DataSet. Вот в момент создания, считав своё свойство Connection, DataSet обратится к соответсвующему ADOConnection и тот его включит в список связанных с ним DataSet'ов.
Причём скорее всего оно так и есть, поскольку открыть DataSet у которого ещё не создан ADOConnection нельзя.
Второй момент состоит в том, что при большом количестве форм их, возможно, просто не удастся все создать до подключения ADOConnection, потому-что просто не хватит ресурсов. Да и держать все DataSet'ы открытыми, если их много, тоже накладно.
Так что скорее всего подобную операцию (открытие DataSet'ов), лучше всего поместить в OnCreate или даже в OnActivate соответствующей формы.
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366498
Vladimir_t2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Мыльников
Давайте дождемся, для генерации советов далее, что сообщит сам автор топика далее по интересуещей его теме. Иначе все наши советы превротятся в домыслы к ситуации в которую попал автор.
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32366648
Савка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идея по поводу активации DataSet-ов в OnActivate формы мне нравится. Сейчас попробую. Спасибо.
...
Рейтинг: 0 / 0
Как открыть ВСЕ ADOQuery?
    #32367383
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще-то для этого Borland Data Module придумал, где и достаточно иметь 2-3 ADOQuery на все случаи жизни
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как открыть ВСЕ ADOQuery?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]