Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вызов ADODataSet по номеру [D6, MSSQL]


Инна ©   (2003-05-12 21:05:00) 

если кто помнит мой вопрос, супер, кто не читал - повторю: как можно вызывать ADODataSet по номеру, чтобы можно было работать с ADODataSEtами в цикле?
мне тут пришла такая простая мысль в голову :): при создании формы опреледелять массивы ADODataSetов, а потом обращаться к ним, как к ячейкам массива. я пробовала - все получается. и аналогично с DBGridами. но меня гнетет, что все так просто... как на ваш опытный взгляд, какая тут может быть подлянка?


kaif   (2003-05-14 01:50:00) [1]

Если же задача носит частный характер (ну просто надо сканировать конкретно эти датасеты), то Ваше решение с массивом - самое простое и правильное.


kaif   (2003-05-14 01:49:00) [2]

Если уж задача такая общая, как работать с DataSet-ами в цикле, и хочется посложнее написать, то может быть стоит сделать свой компонент, хранящий список DataSet-ов и индексное свойство для обращения к ним. Или свойство-коллекцию. Тогда все методы (если они универсальные) сканирования DataSet-ов тоже можно туда запихать.
Хотя как такое может быть я пока не понимаю... (куча dataSet-ов, Grid-ов к ним и какие-то общие дела). У меня так почему-то не бывает (может, к счастью).


Инна   (2003-05-14 01:00:00) [3]

Валера, первый раз вижу :( где же Вы были месяца полтора назад? :) т.е. все-таки можно обращаться к ADODataSetам по номерам - ADOConnection.DataSet[i]? похоже на то... но смысл последнего предложения мне не очень ясен - если ADODataSet использует ADOConnection для доступа на сервак, то этото список датасетов содержит только внутренние датасеты, созданные для доступа к данным, а не сами наборы данных... т.е. что этот список данных не содержит что ли? так этого от него вроде никто не требует.. или что? и еще друцкий вопрос - ADOClientDataSet и ADODataSet это одно и то же? :)))
код примерно такой на создание формы:
massiv[1]:=ADS1;
...
massiv[4]:=ADS4;
а потом обращение в цикле как к ячейке массива номер i со всеми полагающимися ADODataSet функциями и процедурами. с DBGridami так же.


Валера   (2003-05-13 10:09:00) [4]

А это не то:
Provides an indexed array of all active datasets for a connection component.

property DataSets[Index: Integer]: TCustomADODataSet;

Description

Use DataSets to access active datasets associated with a connection component. An active dataset is one that is currently open.

Datasets connected through an ADO connection object can be accessed in sequence through the DataSets property in a loop based on DataSetCount.

var

i: Integer;
begin
for i := 0 to (ADOConnection1.DataSetCount – 1) do
ListBox1.Items.Add(ADOConnection1.DataSets[i].Name)

end;

Note: If a TADOClientDataSet uses the connection component to connect to a database server, DataSets lists the internal dataset that the client dataset creates to access data, not the client dataset itself.


KSergey   (2003-05-13 06:18:00) [5]

Ну определили масив, и что тут такого? Важно потом не забыть созданные динамически компоненты уничтожить - вот и все.
В принципе можно и по другому поступить: перебрать последовательно Components (в случае создания компонент в DesignTime, и выполнить нужный код для всех нашедшихся TADODataSet.


wicked   (2003-05-13 02:07:00) [6]

по идее никаких, но для верности ты бы код привела.... хотя бы схематично...


Наверх

Титульная страница Поиск, карта сайта Написать письмо