Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

Создание 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.035 c
1-1098869384
Pavlik_Morozov
2004-10-27 13:29
2004.11.14
Пролема с преобразованием типов...


14-1099100990
Думкин
2004-10-30 05:49
2004.11.14
С днем рождения! 30 октября


14-1098947558
peypivo
2004-10-28 11:12
2004.11.14
Кодировки


14-1098792737
Erik1
2004-10-26 16:12
2004.11.14
Создание TMemDataSet для подержки древовидной структуры.


14-1098451206
VID
2004-10-22 17:20
2004.11.14
Генеральный поиск квартиры :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский