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

Вниз

связь с БД   Найти похожие ветки 

 
Cabyrc ©   (2009-03-17 11:01) [0]

Каким образом в Delphi головной модуль связать с любой из распространенных СУБД (Access, MySQL, Oracle, FoxPro, InterBase), при этом соединение должно быть динамическим, т.е. пользователь при помощи диалогового окна выбирает БД, с которой будут производиться вычисления???


 
Ega23 ©   (2009-03-17 11:05) [1]

Легко. Генерить ConnectionString в динамике, и все дела.


 
stas ©   (2009-03-17 16:48) [2]

Если ADO
PromptDataSource(Application.Handle,Connection);


 
Cabyrc ©   (2009-03-18 06:30) [3]

1) При помощи ConnectionString в динамике файл самой БД должен ведь обязательно лежать в директории с exe-файлом нашего скомпилированного проекта, насколько мне известно. А реализация проекта иная, пользователь открывает готовый про-дукт, выбирает нужную ему БД, после чего идет подключение проги к выбранной БД и вывод данных таблиц на экран??
2) Что за PromptDataSource?? И где его искать??


 
Медвежонок Пятачок ©   (2009-03-18 08:56) [4]

При помощи ConnectionString в динамике

здесь речь не про тот динамик. это не спикер внутри корпуса.


 
Ega23 ©   (2009-03-18 09:04) [5]


> файл самой БД должен ведь обязательно лежать в директории
> с exe-файлом нашего скомпилированного проекта, насколько
> мне известно.


Учи матчасть.


 
Медвежонок Пятачок ©   (2009-03-18 09:05) [6]

файл самой БД должен ведь обязательно лежать в директории с exe-файлом нашего скомпилированного проекта, насколько мне известно

Любой пример из папки demos\db покажет, что это небылица.


 
Коммуноцентрист1   (2009-03-18 09:05) [7]


> Cabyrc ©   (18.03.09 06:30) [3]
> При помощи ConnectionString в динамике файл самой БД должен
> ведь обязательно лежать в директории с exe-файлом

в общем случае распространенная БД может находиться в неизвестном кол-ве файлов, раскиданных по разным директориям. Соответественно, вид ConnectionString формализовать довольно сложно, там  указываются не обязательно файлы.


 
sniknik ©   (2009-03-18 10:27) [8]

> в неизвестном кол-ве файлов, раскиданных по разным директориям.
и даже больше, она может находится в разделе отделенном от файловой системы оси, поддерживаемом непосредственно сервером бд.
т.е. там где само понятие директория/файл недействительно...


 
Ega23 ©   (2009-03-18 10:32) [9]

а сам сервер может на другой стороне земного шара находиться.


 
Anatoly Podgoretsky ©   (2009-03-18 11:15) [10]


> Учи матчасть.

Жизнь его накажет строго.


 
Плохиш ©   (2009-03-18 12:12) [11]

Как хорошо всё начиналось

> Cabyrc ©   (17.03.09 11:01)
>
> Каким образом в Delphi головной модуль связать с любой из
> распространенных СУБД (Access, MySQL, Oracle, FoxPro, InterBase),
>  при этом соединение должно быть динамическим

а в итоге, как всегда

> Cabyrc ©   (18.03.09 06:30) [3]
>
> 1) При помощи ConnectionString в динамике файл самой БД
> должен ведь обязательно лежать в директории с exe-файлом
> нашего скомпилированного проекта, насколько мне известно.
>


 
stas ©   (2009-03-18 17:38) [12]

Cabyrc ©   (17.03.09 11:01)
Советую для начала разобраться с работой Delphi+ADO+Access.


 
Cabyrc ©   (2009-03-19 09:02) [13]

Вот как раз я здесь и для того чтоб разобраться! Форум он и нужен для этой цели! По ходу работы у меня возникают соответствующие вопросы, на которые хочется услышать вразумительные ответы, а не остроумные подковырки. Коль нечего подсказать, так и не стоит сюда писать и запутывать больше!
И на сколько мне известно при помощи того же самого ConnectionString указывается имя и расширения соответствующей БД. А для меня с точки зрения программиста, интересует вопрос связанный с тем что я не знаю не названия, не расширения БД. Она (БД) может быть одной из пяти распространенных: Access, MySQL, Oracle, FoxPro, InterBase. И путь к ней я тоже не знаю, его указывает пользователь проги.


 
pavel_guzhanov ©   (2009-03-19 09:13) [14]

При использовании ADO можно
var CS:String;
begin
CS:=PromptDataSource(Handle, CS);
ADOConnection1.ConnectionString:=CS;
...
end;

Для InterBase можно и самому сваять диалог, позволяющий вводить/выбирать имя сервера и путь к базе данных на этом сервере.


 
ЮЮ ©   (2009-03-19 09:31) [15]


> И на сколько мне известно при помощи того же самого ConnectionString
> указывается имя и расширения соответствующей БД


Имя СЕРВЕРА БД и имя БАЗЫ ДАННЫХ, забудь про файлы.
FoxPro не в счет.


> Она (БД) может быть одной из пяти распространенных: Access,
>  MySQL, Oracle, FoxPro, InterBase


А у распространненных серверов БД, как ни странно, совершенно разный синтаксис SQL.

Поэтому, универсальная программа может работать только на TTable от BDE, только кому она нафиг нужна такая "универсальеость" :)


 
Плохиш ©   (2009-03-19 10:26) [16]


> Cabyrc ©   (19.03.09 09:02) [13]
>
> Вот как раз я здесь и для того чтоб разобраться! Форум он
> и нужен для этой цели!

Ты заблуждаешься.

> Коль нечего подсказать, так и не стоит сюда писать и запутывать
> больше!

Бедный, запутаный

> И на сколько мне известно при помощи того же самого ConnectionString
> указывается имя и расширения соответствующей БД.

С такими знаниями могу посоветовать только начать с основ. Написать первую программу "Hello world!"


 
Сергей М. ©   (2009-03-19 10:35) [17]


> пользователь при помощи диалогового окна выбирает БД


Имеется ввиду диалоговое окно выбора файла или директории ?
Или что ?


 
Anatoly Podgoretsky ©   (2009-03-19 14:59) [18]

> Cabyrc  (19.03.2009 9:02:13)  [13]

Так это понимание для чего нужен форум и кто имеет право писать и как в твою ветку вне пределов твоих возможностей, на то и форум, что каждый сам это решает.


 
Anatoly Podgoretsky ©   (2009-03-19 15:01) [19]

> Плохиш  (19.03.2009 10:26:16)  [16]

Это сложно, начать надо с написания программы "Hello"


 
Cabyrc ©   (2009-03-20 08:10) [20]


> ЮЮ

Универсальность такая нужна!!!  Да спору нет синтаксис отличается, но в этих БД самая простая таблица и запрос к ней будет тоже самым простым (выбрать все из имеющейся таблицы).


> Сергей М.

Да, именно это и имеется ввиду!


> Плохиш и Anatoly Podgoretsky

Вы два алежи и этим все сказано!


 
Сергей М. ©   (2009-03-20 08:43) [21]


> Cabyrc ©   (20.03.09 08:10) [20]


> именно это и имеется ввиду


И что же, по-твоему, должен будет выбрать юзер в случае подключения, например, к InterBase-серверу, когда тот находится на удаленном хосте ?


 
ЮЮ ©   (2009-03-20 09:17) [22]


> Универсальность такая нужна!!!  Да спору нет синтаксис отличается,
>  но в этих БД самая простая таблица и запрос к ней будет
> тоже самым простым (выбрать все из имеющейся таблицы).


В таком случае совершенно не понятно к чему MySQL, Oracle, InterBase

Ибо одна таблица - это не база. Ну да ладно.

Тогда возможные варианты:
BDE, TTable, использование алиаса.
Настройка клиента на нужную базу сводится к настройке алиса в BDE администраторе.

ADO, TADOTable, использование udl-файла.
Настройка на клиенте сводится к настройке соединения - udf-файла

В обоих случаях возможно использовать ODBC. Ещё один посредник сделает БАЗУ весомее :)


 
Cabyrc ©   (2009-03-20 09:31) [23]


> Сергей М.

Удаленный доступ не рассматривпется, все находится на локальной машине


 
Cabyrc ©   (2009-03-20 09:32) [24]


> Сергей М.

Удаленный доступ не рассматривпется, все находится на локальной машине


 
ЮЮ ©   (2009-03-20 09:37) [25]


> Удаленный доступ не рассматривпется, все находится на локальной
> машине
>


Ну тогда точно без Oracle не обойтись :)

Ну и зачем тогда такое разнообразие. Кому захочется ставить на локалку сервер из-за одной таблицы? Зачем он вообще нужен?

Как вариант - TClientDataSet c SaveToFile/LoadToFile


 
Плохиш ©   (2009-03-20 10:27) [26]


> Cabyrc ©   (20.03.09 09:31) [23]
>
>
> > Сергей М.
>
> Удаленный доступ не рассматривпется, все находится на локальной
> машине
>

К чему тогда упоминания MySQL, Oracle? Или вы эти слова где-то слышали?


 
Плохиш ©   (2009-03-20 10:28) [27]


> Cabyrc ©   (20.03.09 09:31) [23]

Запусти для образования мастер создания строки подключения в делфи и посмотри как окно выбора меняется для выбора разных субд.


 
ЮЮ ©   (2009-03-20 10:29) [28]


> К чему тогда упоминания MySQL, Oracle? Или вы эти слова
> где-то слышали?


Но, к сожалению, не видели. И мечтали их увидеть в OpenDialog1 :)


 
corban   (2009-03-23 06:20) [29]

нда... флудить-то вы умеете... чел просил конкретной помощи, а получил как обычно


 
Palladin ©   (2009-03-23 08:20) [30]


> corban   (23.03.09 06:20) [29]

он ее получил в самом первом ответе, потом еще и во втором... какие проблемы?


 
Palladin ©   (2009-03-23 08:21) [31]


> corban   (23.03.09 06:20) [29]

хотя, конечно, ни ты, ни он его не поняли... ну что ж, удачи вам, господа...


 
Anatoly Podgoretsky ©   (2009-03-23 08:51) [32]

Автор после получения ответов сначала стал нести ахинею, а потом и претензии предъявлять, что его на учат.


 
Плохиш ©   (2009-03-23 11:49) [33]


> corban   (23.03.09 06:20) [29]
>
> нда... флудить-то вы умеете...

Да и вы не отстаёте...


 
Ega23 ©   (2009-03-23 12:27) [34]

автор, тебе сюда
http://www.connectionstrings.com/
Когда выучишь - можешь дальше вопросы задавать.


 
Sinusoid   (2009-04-01 16:05) [35]

Если пользователь выбирает базу данных руками )) то нужно использовать OpenDialog со всеми вытекающими последствиями ))


 
Ega23 ©   (2009-04-01 16:10) [36]


> то нужно использовать OpenDialog


Да ну? А я вот комбобокс обычный использую, это как, нормально? :)


 
Jeer ©   (2009-04-01 16:50) [37]


> Ega23 ©   (01.04.09 16:10) [36]
>
>
> > то нужно использовать OpenDialog
>
>
> Да ну? А я вот комбобокс обычный использую, это как, нормально?
>  :)
>


Конечно не нормально.
Ну как же обойтись без диалога выбора файла :)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.05.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.03 c
3-1221022999
Alexey
2008-09-10 09:03
2009.05.17
SQL-запрос в delphi


2-1238737468
Roman88
2009-04-03 09:44
2009.05.17
Функция FileSize


3-1220882616
Кочпхдун Нджумбабаев
2008-09-08 18:03
2009.05.17
TQuery, данные не хотят обновляться :(


4-1210079518
bon
2008-05-06 17:11
2009.05.17
Terminal server


15-1236720610
Юрий
2009-03-11 00:30
2009.05.17
С днем рождения ! 11 марта 2009 среда





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