DataModule
От: Ozone Россия  
Дата: 11.02.03 06:39
Оценка:
Подскажите, как обратиться ко всем таблицам (TTable, TQuery), т.е. для того, чтобы, например, открыть/закрыть их все.
Re: DataModule
От: mrhru Россия  
Дата: 11.02.03 06:45
Оценка:
Здравствуйте, Ozone, Вы писали:

O>Подскажите, как обратиться ко всем таблицам (TTable, TQuery), т.е. для того, чтобы, например, открыть/закрыть их все.


У TDatabase есть свойства: DataSetCount и DataSets. Перебирай и закрывай/открывай.
Евгений
Re[2]: DataModule
От: Ozone Россия  
Дата: 11.02.03 06:50
Оценка:
Здравствуйте, mrhru, Вы писали:

M>Здравствуйте, Ozone, Вы писали:


O>>Подскажите, как обратиться ко всем таблицам (TTable, TQuery), т.е. для того, чтобы, например, открыть/закрыть их все.


M>У TDatabase есть свойства: DataSetCount и DataSets. Перебирай и закрывай/открывай.

M>

Я не использую компонент TDataBase. Как быть?
Re[3]: DataModule
От: _MarlboroMan_ Россия  
Дата: 11.02.03 06:55
Оценка: 48 (2)
Здравствуйте, Ozone, Вы писали:

O>Я не использую компонент TDataBase. Как быть?


...
...
    // DM : TDataModule;
    // i : integer;
    for i := 0 to DM.ComponentCount - 1 do
        if DM.Components[i] is TDataSet then
            TDataSet(DM.Components[i]).Active := false;
...
...
... << RSDN@Home 1.0 beta 6a... наслаждаюсь eto on >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[3]: DataModule
От: mrhru Россия  
Дата: 11.02.03 06:58
Оценка:
Здравствуйте, Ozone, Вы писали:

O>Здравствуйте, mrhru, Вы писали:


M>>Здравствуйте, Ozone, Вы писали:


O>>>Подскажите, как обратиться ко всем таблицам (TTable, TQuery), т.е. для того, чтобы, например, открыть/закрыть их все.


M>>У TDatabase есть свойства: DataSetCount и DataSets. Перебирай и закрывай/открывай.

M>>

O>Я не использую компонент TDataBase. Как быть?


А к чему "прицеплены" TTable и TQuery?

Ну ладно, и без TDataBase можно — перебором компонентов модуля:

  for i:=0 to DataModule1.Components.Count - 1 do begin
    if DataModule1.Components[i] is TDataSet then begin
      TDataSet(DataModule1.Components[i]).Close();// или .Open() - что больше понравится :)
    end;
  end;


(извиняюсь за Delphi код. )
Евгений
Re[3]: DataModule
От: Ozone Россия  
Дата: 11.02.03 07:00
Оценка:
Всем большое спасибо!
Re[4]: DataModule
От: Ozone Россия  
Дата: 11.02.03 07:05
Оценка:
Все здорово работает, но как мне теперь можно всем им присвоить один DatabaseName:=dir (где dir: string)
Re[4]: DataModule
От: _MarlboroMan_ Россия  
Дата: 11.02.03 07:08
Оценка: 58 (3)
Здравствуйте, mrhru, Вы писали:

M>Ну ладно, и без TDataBase можно — перебором компонентов модуля:


............
      TDataSet(DataModule1.Components[i]).Close();// или .Open() - что больше понравится :)
............


рекомендую пользовать не Close и Open, а DataSet.Active := false; (для Close) и, соответственно, DataSet.Active := true; (для Open).
это связано с тем, что при попытке выполнить метод Close (Open) на закрытом (открытом) датасете получишь ексепшн, а при присвоении проперти Active — не будет никакого ексепшна
... << RSDN@Home 1.0 beta 6a... наслаждаюсь Врачебная нищенская >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[5]: DataModule
От: _MarlboroMan_ Россия  
Дата: 11.02.03 07:08
Оценка: 10 (1)
Здравствуйте, Ozone, Вы писали:

O>Все здорово работает, но как мне теперь можно всем им присвоить один DatabaseName:=dir (где dir: string)


да точно так же
... << RSDN@Home 1.0 beta 6a... наслаждаюсь Врачебная нищенская >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[5]: DataModule
От: mrhru Россия  
Дата: 11.02.03 07:09
Оценка:
Здравствуйте, Ozone, Вы писали:

O>Все здорово работает, но как мне теперь можно всем им присвоить один DatabaseName:=dir (где dir: string)


Точно также — перебором и присвоением. Только обращаться к ним как к TDBDataSet'ам, а не TDataSet'ам
.
Евгений
Re[6]: DataModule
От: Ozone Россия  
Дата: 11.02.03 07:09
Оценка:
Здравствуйте, _MarlboroMan_, Вы писали:

_MM_>Здравствуйте, Ozone, Вы писали:


O>>Все здорово работает, но как мне теперь можно всем им присвоить один DatabaseName:=dir (где dir: string)


_MM_>да точно так же


Но ведь у TDataSet нет свойства DatabaseName??
Re[7]: DataModule
От: _MarlboroMan_ Россия  
Дата: 11.02.03 07:14
Оценка: 18 (1)
Здравствуйте, Ozone, Вы писали:

O>Но ведь у TDataSet нет свойства DatabaseName??


дык тебя же никто не заставляет работать с TDataSet... можешь искать среди компонентов TDBDataSet... у него есть и TTable и TQuery от него "происходят"
... << RSDN@Home 1.0 beta 6a... наслаждаюсь 02 Динамовский вальс >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.