Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2010, 08:06   #1
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию ADOConnection

Здравствуйте! Подскажите пожалуйста, как сделать, чтобы программа брала файл mdb из папки с исходниками, а не с другого места?
Т.к. если кинуть exe-файл на флешку и запустить на другом компе, прога просит файл БД из директории, указанной при проектировании.
Optigood вне форума Ответить с цитированием
Старый 01.05.2010, 08:18   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Код:
  DbPath:=ExtractFilePath(Application.ExeName)+DbName;
  ADOConnection.ConnectionString:=ADOProvider+DBPath;
  ADOConnection.Open;
ADOProvider='Provider=Microsoft.Jet .OLEDB.4.0; Data Source=';
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 01.05.2010, 08:30   #3
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию

Grag, спасибо за то, что помогаете .
Сделал как вы написали, не помогло (базу не видит):


Цитата:
DbPath:=ExtractFilePath(Application .ExeName)+DbName;
ADOConnection.ConnectionString:=ADO Provider+DBPath;
ADOConnection.Open;
А это куда нужно вставлять? Простите, в делфи новичок... Если просто в код кинуть, то выделяет красным DBPath и Exename.
Optigood вне форума Ответить с цитированием
Старый 01.05.2010, 08:54   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Я это обычно вставляю в FormCreate...
При создании формы определяю путь запуска приложения ExtractFilePath(Application .ExeName), DbName - это имя базы данных,
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 01.05.2010, 09:19   #5
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию


Не даёт запуститься программе.

Последний раз редактировалось Optigood; 01.05.2010 в 09:23.
Optigood вне форума Ответить с цитированием
Старый 01.05.2010, 09:46   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Ну и кто же так пишет-то???!!!
Код:
DbPath:=ExtractFilePath(Application.ExeName)+'db1.mdb'
Возможно нужен еще и слэш '\', точно не помню, нужно в отладчике глянуть, что возвращает ExtractFilePath....

ADOProvider='Provider=Microsoft.Jet .OLEDB.4.0; Data Source='; - это строковая константа...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 01.05.2010 в 09:48.
Grag вне форума Ответить с цитированием
Старый 01.05.2010, 09:59   #7
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию

Я в delphi плохо разбираюсь. На видео-уроках могу ещё что-то сделать...
ругается на DBPath...
Optigood вне форума Ответить с цитированием
Старый 01.05.2010, 11:07   #8
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

Код:
var dbpath:string;
begin
ADOProvider='Provider=Microsoft.Jet .OLEDB.4.0; Data Source=';
DbPath:=ExtractFilePath(Application.ExeName)+'Db1.mdb';
ADOConnection.ConnectionString:=ADOProvider+DBPath;
ADOConnection.Open;
end;
а еще проще нажмите build и при выборе базы сотрите полный путь оставив только db1.mdb
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!
DoDge_VipeR вне форума Ответить с цитированием
Старый 01.05.2010, 16:37   #9
Optigood
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 20
По умолчанию

Не помогло...
Optigood вне форума Ответить с цитированием
Старый 02.05.2010, 12:37   #10
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Я такие подключения использую сплошь и рядом для оперативного переключения между различными базами данных на различных носителях, для оперативной перезагрузки БД после коррекции сторонними программами. Ни разу еще не было сбоев и ошибок... Программы коммерческие...
Значит что-то делаешь не так...

Вот кусок из рабочей программы:
Код:
  readln(fTxtFile,DBPath);  //из некоторого файла INI получаю нужную БД, из предыдущего сеанса
  slrADOConnection.ConnectionString:=ADOProvider+DBPath;
  slrADOConnection.Open;
  MainStatBar.Panels[0].Text:='  База данных - '+DBPath;
В твоем случае я уже писал
1 Получаешь путь к Экзешнику ExeDir:=ExtractFilePath(Application .ExeName);
2. Формируешь путь к БД DbPath:=ExeDir+'db1.mdb'
3 И, наконец,
Код:
ADOConnection.ConnectionString:=ADOProvider+DBPath;
ADOConnection.Open;
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 02.05.2010 в 12:48.
Grag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADOConnection Explosion БД в Delphi 7 16.04.2010 15:54
ADOConnection nikori БД в Delphi 2 17.06.2009 09:53
Сетевое подключение ADOConnection Dozent БД в Delphi 9 16.06.2009 14:22
ADOConnection к удаленной БД za4ot БД в Delphi 7 16.01.2009 11:53
ADOConnection.connectionString AnnNet Общие вопросы Delphi 2 16.09.2008 09:31