|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.03.2009, 11:12 | #1 |
Пользователь
Регистрация: 17.03.2009
Сообщений: 17
|
Как осуществить возможность выбора БД в процессе работы программы
Каким образом в Delphi головной модуль связать с любой из распространенных СУБД (Access, MySQL, Oracle, FoxPro, InterBase), при этом соединение должно быть динамическим, т.е. пользователь при помощи диалогового окна выбирает БД, с которой будут производиться вычисления???
|
17.03.2009, 11:57 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ради бога. ADO компоненты.
I'm learning to live...
|
17.03.2009, 12:05 | #3 |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
Tсли Вы используете доступ к базе через ADO, в ADOConnection есть свойство: ConnectionString, вот сюда передавайте данные для установки связи, и потом свойство Сonnected:=true;
Тяжело быть бестолковым.....
|
17.03.2009, 13:18 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ой. Боюсь, что всё далеко не так всё безоблачно...
в разных СУБД чуть-чуть отличается синтаксис SQL/DDL... :-( Конечно, если не уходить в запросах дальше чем SELECT * FROM Table1 Where ... или UPDATE Table1 SET Pole1 = Значение WHERE .... то оно всё будет работать, но вложенные запросы, запросы в связанных таблицах, запросы с вариантами и т.д. и т.п. — всё это на разных СУБД будет глючить по разному... я уже не говорю про использование триггеров и встроенных в сервер процедурных языков (Transact-SQL, PL/SQL и т.д.) |
18.03.2009, 06:30 | #5 |
Пользователь
Регистрация: 17.03.2009
Сообщений: 17
|
При помощи ConnectionString в динамике файл самой БД должен ведь обязательно лежать в директории с exe-файлом нашего скомпилированного проекта, насколько мне известно. А реализация проекта иная, пользователь открывает готовый про-дукт, выбирает нужную ему БД, после чего идет подключение проги к выбранной БД и вывод данных таблиц на экран??
|
18.03.2009, 07:11 | #6 | |
Форумчанин
Регистрация: 29.01.2009
Сообщений: 411
|
Цитата:
например: Код:
Код:
Код:
Последний раз редактировалось S@fer; 18.03.2009 в 07:16. |
|
19.03.2009, 09:01 | #7 |
Пользователь
Регистрация: 17.03.2009
Сообщений: 17
|
S@fer: в твоих вариантах указывается имя БД и ее расширения (в конкретном примере это Access). Также используется соответствующий драйвер Microsoft.Jet.OLEDB.4.0 опять же для Access. И потому прога будет присоединять конкретный файл БД по конкретному адресу, т.е. БД Access с именем baza.mdb, лежащая в C:\temp\myproject\. В моем понимании это жесткая связь с БД. Меня же интересует реализация в одном приложении подключения к различным БД (Access, MySQL, Oracle, FoxPro, InterBase), и при этом БД выбирает сам пользователь и соответственно имя БД может быть абсолютно любым, а расширение не только .mdb
|
19.03.2009, 10:04 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
19.03.2009, 10:10 | #9 |
Форумчанин
Регистрация: 29.01.2009
Сообщений: 411
|
Cabyrc
Из OpenDialog сохраняешь полный путь к выбранной базе в переменную, парсишь её, в зависимости от расширения выбираешь соответсвующий драйвер И в зависимости какой будет драйвер формируешь уже Connection |
21.03.2009, 08:30 | #10 |
Пользователь
Регистрация: 17.03.2009
Сообщений: 17
|
Спасиб, так и сделал
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как узнать время работы программы в паскаль? | bullvinkle | Помощь студентам | 2 | 26.12.2008 11:20 |
Можно ли ввести данные в таблицу StringGrid не в процессе выполнения программы а заранее | Arassir | Помощь студентам | 5 | 02.11.2008 17:34 |
Блокировка функции в процессе ее работы | Andr180nag | JavaScript, Ajax | 2 | 11.08.2008 18:07 |
Как ограничить срок работы программы | Allegro87 | Microsoft Office Access | 7 | 26.11.2007 12:15 |
Как программно нажать клавишу в чужом процессе? | Sere0ga | Win Api | 2 | 27.03.2007 18:43 |