Главная страница
    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.46 MB
Время: 0.045 c
1-1099392641
dolphin
2004-11-02 13:50
2004.11.14
Собития в динамически создаваемых формах


14-1098879385
infom
2004-10-27 16:16
2004.11.14
Программа для организации небольшого оборота задач и событий


6-1094536049
WondeRu
2004-09-07 09:47
2004.11.14
Как оследить обрыв сети?


1-1099167997
ser_ega
2004-10-31 00:26
2004.11.14
Form


9-1090223437
Evgeniy_K
2004-07-19 11:50
2004.11.14
Поворот на 180 градусов - DirectDraw





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский