Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Создание ADOConnection во время прогона программы   Найти похожие ветки 

 
diabolik_krsk   (2004-10-13 08:15) [0]

Уважаемые мастера, проблема следующего содержания.
Существуют несколько баз данных Access (у баз одинаковые структуры). На форме существует Treeview куда грузится структрура всех баз с параметрами SQL запросов для каждого пункта.
Так же есть DBGrid"ы куда и грузятся собственно данные из разных баз.
При занесении данных в TreeView создается один ADOConnection-ADOQuery- DataSource с попеременной сменой пути расположения базы (дополнительно берется из файла настройки).
В то же время перемещение по дереву TreeView вызывает ошибку, т.к. параметры SQL запросов связаны с уже закрытыми базами.
Таким образом, для каждой базы данных (занесенных в файл настройки) необходимо создать ADOConnection в ходе прогона программы => появляется 2 и более ADOConnection и, соответственно ADOQuery и DataSource для каждого соединения.
Подскажите каким образом это сделать?
Кроме того в ходе выполнения программы необходимо обращиться к этим компонентам и менять их настройки. Каким образом осуществлять доступ к компонентам?


 
tERRORist ©   (2004-10-13 08:24) [1]

При заполнении TreeView для каждого уровня создавать соответсвующий компонент(ы):
0-й (базы) - ADOConnection
1-й (таблицы, запросы) - ADODataSet, DataSource

Ссылаться на компонеты с помощью свойства TreeNode.Data


 
tERRORist ©   (2004-10-13 08:51) [2]

Что-то типа такого:
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)


 
KSergey ©   (2004-10-13 12:59) [3]

Лично я не понял вопроса....


 
diabolik_krsk   (2004-10-14 14:29) [4]

Все, спасибо. Я разобрался.


> KSergey ©   (13.10.04 12:59) [3]
> Лично я не понял вопроса....

Извените если непонятно формирую вопрос.



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
14-1098944904
Ega23
2004-10-28 10:28
2004.11.14
Голосование!


14-1098892180
Александр1
2004-10-27 19:49
2004.11.14
Настройка web


1-1099412841
Владимир
2004-11-02 19:27
2004.11.14
Восстановление окон


1-1099320334
Kat
2004-11-01 17:45
2004.11.14
Как узнать сколько дней в январе например?


3-1097914633
arick
2004-10-16 12:17
2004.11.14
Проблема в подключении TSQLConnection (dbExpress)