![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как dataset сделать активным?
mfender © (2003-09-11 01:10:00)
for n:=0 to base.DataSetCount-1 do
begin
if (base.DataSets[n] is TTable) or (base.DataSets[n] is TQuery) then
base.DataSets[n].Active:=True;
end;
по понятным причинам не работает. А как бы их включить, не используя Table1.Active:=True; Table2.Active:=True; .... TableN.Active:=True; ?
Rol (2003-09-11 10:19:00) [1]
ну а какую ж ещё :)
mfender (2003-09-11 06:14:00) [2]
Хочется конкретики. Убедится, что включит он именно эту TTable.
Кщд (2003-09-11 05:48:00) [3]
почему бы не просто TTable(Components[n])? Зачем искать то, что уже имеем? :)
mfender (2003-09-11 03:18:00) [4]
Немного неправильно изложил. Вот так получилось:
with dm do begin
for n:=0 to ComponentCount-1 do
begin
if (Components[n] is TTable) then
TTable(FindComponent(Components[n].Name)).Active:=True;
if (Components[n] is TQuery) then
TQuery(FindComponent(Components[n].Name)).Active:=True;
end;
end;
mfender (2003-09-11 02:36:00) [5]
на всякий случай, мало ли, какие датасеты могут попасться, а мне нужно только TTable и TQuery. Но это не важно. Все равно это не работает, т.к. DataBase.DataSetCount показывает только количество активных датасетов. А мне как раз требуется их привести в активное состояние. Я решил сию задачу проще:
for n:=0 to DataModule.ComponentCount-1 do
begin
if (DataModule.Components[n] is TTable) or (DataModule.Components[n] is TQuery) then
Active:=True;
end;
jack128 (2003-09-11 01:41:00) [6]
а зачем проверка is Ttable и is Tquery?
TADOConnection.DataSets
property DataSets[Index: Integer]: TCustomADODataSet
имхо (base.DataSets[n] is TTable) or (base.DataSets[n] is TQuery) всегда false...