Главная страница
    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.45 MB
Время: 0.037 c
1-1099044734
_Demik_
2004-10-29 14:12
2004.11.14
Алгоритм отрисовки региона


1-1099246811
Новиков_Н
2004-10-31 21:20
2004.11.14
StrAlloc...StrDispose


14-1098795070
vidiv
2004-10-26 16:51
2004.11.14
Помогите пожалуйста перевести на си


4-1096881300
Plotnick
2004-10-04 13:15
2004.11.14
Как поместить форму на диалоговое окно другой программы


1-1099047852
Pentium133
2004-10-29 15:04
2004.11.14
TStringList и IniFile





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