Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Соединение БД с DataBase в запущенной программе


Автор: Molezhik 10.6.2009, 11:33
     Всем привет! У меня такая проблема: есть база данных Access, программа соединяется с ней при помощи DataBase. Сложность заключается в том, что при перемещении программы естественно вылазеет ошибка, мол БД не найдена. Как создать с ней связь во время выполнения программы для дальнейшей ее обработки. 
     Всем, кто попытался помочь, заранее спасибо!

Автор: Frees 10.6.2009, 11:37
не пеши полный путь а пеши относительный

Автор: Molezhik 10.6.2009, 11:42
     Где писать путь? Я использую DataBase, а там база данных выбирается под средством свойства AliasName. Сама БД добавлена через ODBC Administrator.

Автор: Данкинг 10.6.2009, 11:48
Цитата(Molezhik @  10.6.2009,  12:42 Найти цитируемый пост)
Я использую DataBase

Какой DataBase? smile Вообще-то к .mdb подключаются через ADO...

Автор: Molezhik 10.6.2009, 11:53
     Я в Delphi мало соображаю, тем более БД.  У меня с DataBase все отлично работает, только проблема с перемещением программы. Не знаю какая разница BDE или ADO!?!?

Автор: Данкинг 10.6.2009, 12:23
Цитата(Molezhik @  10.6.2009,  12:53 Найти цитируемый пост)
У меня с DataBase все отлично работает, только проблема с перемещением программы. 

Если есть проблема - значит, уже не отлично. smile 

Цитата(Molezhik @  10.6.2009,  12:53 Найти цитируемый пост)
Не знаю какая разница BDE или ADO!?!? 

Принципиальная: BDE - прошлый век, к тому же требует установки этого самого BDE. А с ADO ничего такого, работает даже при отсутствии на компе Access'а (проверено в XP SP3 и Vista). smile




Автор: Molezhik 10.6.2009, 12:35
     Ну а всетаки можно это сотворить?

Автор: Akella 10.6.2009, 13:49
что "это"?

Автор: Molezhik 10.6.2009, 13:52
   "Это" - У меня такая проблема: есть база данных Access, программа соединяется с ней при помощи DataBase. Сложность заключается в том, что при перемещении программы естественно вылазеет ошибка, мол БД не найдена. Как создать с ней связь во время выполнения программы для дальнейшей ее обработки. 

Автор: Romikgy 10.6.2009, 14:09
покажи свой код доступа к БД

Автор: Molezhik 10.6.2009, 14:29
     Кода у меня нет. Я с помощью мышки все делал. В ODBC Administrator добавил свою БД. Потом в свойстве  AliasName у объекта DataBase выбираю имя БД.

Автор: Данкинг 10.6.2009, 14:31
Цитата(Molezhik @ 10.6.2009,  14:52)
"Это" - У меня такая проблема: есть база данных Access, программа соединяется с ней при помощи DataBase. Сложность заключается в том, что при перемещении программы естественно вылазеет ошибка, мол БД не найдена. Как создать с ней связь во время выполнения программы для дальнейшей ее обработки.

Скопируй этот пост ещё 10 раз и разошли в личку 10-ти участникам форума, и будет тогда тебе счастье. smile 

По теме: наверное, можно, я с BDE никогда не работал, но думаю, что там аналогично ADO указывается путь к базе. Сделай его относительно своего exe-файла, к примеру.

Добавлено через 39 секунд
Цитата(Molezhik @  10.6.2009,  15:29 Найти цитируемый пост)
Кода у меня нет. 

А что твоя программа-то делает? smile В любом случае, без кода точно ничего не получится. smile 

Автор: Romikgy 10.6.2009, 14:32
ты БД перемещаешь или ехе ?

Автор: Molezhik 10.6.2009, 14:40
     В принципе перемещаю и бд, и exe. Сбой только при перемещении бд, прогу можно кидать куда угодно.

Автор: Akella 10.6.2009, 14:47
Цитата(Molezhik @  10.6.2009,  14:40 Найти цитируемый пост)
Сбой только при перемещении бд, 

Если ты думаешь, что Delphi или ODBC администратор или сама ОС следит за перемещением твоей базы данных, то ты ошибаешься. Делай в своей программе форму типа "Параметры подключения к базе". Чтобы пользователь, переместив базу мог указать в этом окне, выбрать файл базы. Понимаешь о чём я? Тебе нужно использовать не BDE, а ADO. Компоненты со страницы ADO. Подключайся к базе с помощью компоненты Connection. Неужели в Delphi нет примеров? Строишь строку подключения, подсовываешь компоненте Connection и вуаля.

Добавлено через 1 минуту и 11 секунд
Неужели в гугле примеров ненарыть?
http://www.google.com/search?hl=ru&ei=M5ovSu6jN8-F_QaH-LDOCg&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+ado+access&spell=1

Добавлено через 2 минуты и 9 секунд
Цитата(Frees @  10.6.2009,  11:37 Найти цитируемый пост)
не пеши полный путь а пеши относительный 

я так подразумеваю, что автор не знает даже как составить строку подключения и подсунуть компоненте для соединения с базой

Автор: Molezhik 10.6.2009, 14:55
     Нет, я не думаю что кто-то следит за этой базой данных. Я уж не такой глупый то. Все я понимаю, проблема в том, что у меня уже готовая программа. А переделывать из BDE в ADO нет времени диплом через неделю, да желания нет.  Вопрос остался только в перемещении бд. А как с BDE форму типа "Параметры подключения к базе" сотворить?

Автор: Romikgy 10.6.2009, 15:28
выложи свой проект 

Автор: Данкинг 10.6.2009, 15:30
Цитата(Molezhik @  10.6.2009,  15:55 Найти цитируемый пост)
Все я понимаю, проблема в том, что у меня уже готовая программа. А переделывать из BDE в ADO нет времени диплом через неделю, да желания нет.  

Если бы сам писал программу, то переделать было бы проще. К тому же не думаю, что переделать столь уж сложно.

Автор: Molezhik 10.6.2009, 15:39
Вот он...

Добавлено через 5 минут и 34 секунды
     Ну вообщето я сам ее делал, если откроешь проект,спорить не будешь.  smile Я начинал переделывать, сначало вроде шло все отлично, а потом некоторых процедур нет в ADO(скорее всего конечно по другому называются) и пошли ошибки. Я запутался, да и тем более завтра прогу показывать преподу нада, лучше чтоб хоть как-нибудь работала, чем вообще не будет!!!

Автор: Akella 10.6.2009, 22:08
Я проект не смотрел. Но сразу говорю, что лучше переделать на ADO.

Автор: Данкинг 10.6.2009, 22:38
Цитата(Akella @  10.6.2009,  23:08 Найти цитируемый пост)
Но сразу говорю, что лучше переделать на ADO. 

 smile Дык, это - сроки горят, диплом и всё такое. smile 

Автор: Romikgy 10.6.2009, 22:40
у мя вообще какие то косяки с адо :( постоянно пароль и имя спрашивает , нафик они нужны при локальной та БД или как это убрать или как поставить в аксесе имяи пароль?

Автор: Данкинг 10.6.2009, 23:01
Цитата(Romikgy @  10.6.2009,  23:40 Найти цитируемый пост)
у мя вообще какие то косяки с адо :( постоянно пароль и имя спрашивает

Где, в Access? smile А LoginPrompt:=false сделать?

Автор: Romikgy 10.6.2009, 23:31
Цитата(Данкинг @  10.6.2009,  22:01 Найти цитируемый пост)
А LoginPrompt:=false сделать?

не в курсе был.... с адо раньше не работал вообще, перепроверю smile

Автор: Данкинг 10.6.2009, 23:54
Цитата(Romikgy @  11.6.2009,  00:31 Найти цитируемый пост)
перепроверю 

Точно говорю, получится. smile 

Автор: Romikgy 11.6.2009, 10:00
да помогло ,
еще вопрос , если пробуешь чет заинсертить то выдает ошибки (в приложении ) 

PS и у мя понадобилось делать такое что бы все заработало 
Код

ADOQuery1.ConnectionString:=ADOConnection1.ConnectionString;

Автор: Romikgy 11.6.2009, 10:01
не вошло две картинко (( сразу

что это может быть ?

Автор: Данкинг 11.6.2009, 11:02
Цитата(Romikgy @  11.6.2009,  11:00 Найти цитируемый пост)
то выдает ошибки (в приложении ) 

Ни разу такого не было - каких там параметров недостаточно может быть? smile 

Цитата(Romikgy @  11.6.2009,  11:00 Найти цитируемый пост)
PS и у мя понадобилось делать такое что бы все заработало 

Зачем? 
http://ipicture.ru/

Автор: Romikgy 11.6.2009, 12:24
Цитата(Данкинг @  11.6.2009,  10:02 Найти цитируемый пост)
Зачем? 

низнаю , так как на картинко выбрано сразу было , но без этой строчки не хотело корректно работать ....
Цитата(Данкинг @  11.6.2009,  10:02 Найти цитируемый пост)
Ни разу такого не было - каких там параметров недостаточно может быть?

я нинаю , только щаз возникает вопрос как вносить данные в БД через ADO ?

Автор: Данкинг 11.6.2009, 14:33
Цитата(Romikgy @  11.6.2009,  13:24 Найти цитируемый пост)
только щаз возникает вопрос как вносить данные в БД через ADO ? 

Как обычно: или запросом через AdoQuery, или в цикле, т.е.:
Код

AdoTable.Edit;
AdoTable.FieldValues['pole1']:='dddddd';
AdoTable.Post;


Добавлено через 42 секунды
Цитата(Romikgy @  11.6.2009,  13:24 Найти цитируемый пост)
низнаю , так как на картинко выбрано сразу было , но без этой строчки не хотело корректно работать ....

Что-то у тебя не так: я никогда такого не писал, и всё работало...

Автор: Molezhik 11.6.2009, 17:08
     Решил все оставить как есть, спасибо всем кто пытался помоч, а так же тем кто зларадствовал   smile 
                                                  Тема закрыта!!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)