Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1098975439
Norn
2004-10-28 18:57
2004.11.14
Определения файла, для открытия которой была вызвана программа


1-1098942518
NeyroSpace
2004-10-28 09:48
2004.11.14
Как отсортировать TVirtualStringTree?


6-1094027486
bl4ck_w1nd
2004-09-01 12:31
2004.11.14
комп+модем+телефон


3-1097655075
Submarine
2004-10-13 12:11
2004.11.14
Работа с SQL 2000 server


14-1098516040
SteelMan
2004-10-23 11:20
2004.11.14
Посоветуйте компонент




   Наверх