![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание ADOConnection во время прогона программы [D6, Access(mdb)]
diabolik_krsk © (2004-10-13 08:15:00)Уважаемые мастера, проблема следующего содержания.
Существуют несколько баз данных Access (у баз одинаковые структуры). На форме существует Treeview куда грузится структрура всех баз с параметрами SQL запросов для каждого пункта.
Так же есть DBGrid'ы куда и грузятся собственно данные из разных баз.
При занесении данных в TreeView создается один ADOConnection-ADOQuery- DataSource с попеременной сменой пути расположения базы (дополнительно берется из файла настройки).
В то же время перемещение по дереву TreeView вызывает ошибку, т.к. параметры SQL запросов связаны с уже закрытыми базами.
Таким образом, для каждой базы данных (занесенных в файл настройки) необходимо создать ADOConnection в ходе прогона программы => появляется 2 и более ADOConnection и, соответственно ADOQuery и DataSource для каждого соединения.
Подскажите каким образом это сделать?
Кроме того в ходе выполнения программы необходимо обращиться к этим компонентам и менять их настройки. Каким образом осуществлять доступ к компонентам?
diabolik_krsk (2004-10-14 14:29:00) [1]Все, спасибо. Я разобрался.
> KSergey © (13.10.04 12:59) [3]
> Лично я не понял вопроса....
Извените если непонятно формирую вопрос.
KSergey (2004-10-13 12:59:00) [2]Лично я не понял вопроса....
tERRORist (2004-10-13 08:51:00) [3]Что-то типа такого:
1. Соединения
var ac:TADOConnection;
CurrentDB:TTreeNode;
ac:=TADOConnection.Create(Self);
ac.ConnectionString:='..............';
ac.Name:='..............';
CurrentDb:=TreeView.AddObject(nil,ac.Name,ac);
1. Запросы
var ac:TADOConnection;
aq:TADOQuery;
ds:TDataSource;
CurrentDB:TTreeNode;
CurrentQuery:TTreeNode;
CurrentDB:=....; // узел в дереве с сооветсвующей БД
ac:=(CurrentDB.Data as TADOConnection);
aq:=TADOQuery.Create;
aq.Connection:=ac;
aq.Name:='.............';
ds:=TDataSource.Create;
ds.DataSet:=aq;
CurrentQuery:=TreeView.AddChildObject(CurrentDB,aq.Name,ds);
Обращаться к Query так:
((CurrentQuery.Data as TDataSource).DataSet as TADOQuery)
tERRORist (2004-10-13 08:24:00) [4]При заполнении TreeView для каждого уровня создавать соответсвующий компонент(ы):
0-й (базы) - ADOConnection
1-й (таблицы, запросы) - ADODataSet, DataSource
Ссылаться на компонеты с помощью свойства TreeNode.Data