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


Автор: BEST13 5.2.2012, 14:24
Пишу приложение на Delphi EX2 + база на Аccess использую ADO
Проблема состоит в том, что  при открытии проекта ищет базу по пути: "С:\Users\Name\Desktop\Base.mdb" . В ConectionString путь прописан как:"Base.mdb", тоесть оно должно искать базу в той же паке что и ехе.  
Если закрыть проект и снова открыть все норм, а если закрыть саму делфи и снова запустить её и открыть проект вылазит ошибка, эта" Не удается найти файл: " С:\Users\Name\Desktop\Base.mdb" . 

Дело в том, что если указть путь к базе жостко и потом снова поставить "Base.mdb", все работает,  пока делфи не закроешь( 
 

Автор: Данкинг 5.2.2012, 14:48
Код

var p,pp:string;
begin
 p:=extractfilepath(application.ExeName)+'\base.mdb'; 
 pp:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+p+';Persist Security Info=False';
 conn.ConnectionString:=pp;
 conn.Connected:=true;
end;

Автор: BEST13 5.2.2012, 14:54
Цитата(Данкинг @  5.2.2012,  14:48 Найти цитируемый пост)
var p,pp:string;
begin
 p:=extractfilepath(application.ExeName)+'\base.mdb'; 
 pp:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+p+';Persist Security Info=False';
 conn.ConnectionString:=pp;
 conn.Connected:=true;
end;

Ну, это что бы само приложение не теряло базу, а вот чего делфи её не находит?
Но, всё равно спасибо) 

Автор: vovk 5.2.2012, 18:18
Вы понимаете что такое относительный путь?
Это путь относительно текущей директории.. какая директория текущая при запуске приложения?

Данкинг именно об этом и говорил он предложил путь относительно вашего приложения, а вы просто пытаетесь считать, что текущая директория всегда  =  той где лежит ваше приложение.
Пишите полный путь и не будет проблем.

Автор: BEST13 5.2.2012, 20:19
Цитата(vovk @  5.2.2012,  18:18 Найти цитируемый пост)

Вы понимаете что такое относительный путь?
Это путь относительно текущей директории.. какая директория текущая при запуске приложения?

Данкинг именно об этом и говорил он предложил путь относительно вашего приложения, а вы просто пытаетесь считать, что текущая директория всегда  =  той где лежит ваше приложение.
Пишите полный путь и не будет проблем.

Я понимаю, что такое относительный путь. Если оставить просто название базы, она ищется в той же папке, где и приложение. Способ, который мне предложил Данкинг, делает тоже самое, получает путь к приложение и прописывает полный путь.  

Я бы так из дела если бы была проблема при запуске проекта, но проблема при открытии проекта....
Кстати, она прошла сама по себе надеюсь, какой-то глюк был.

Если, я что-то не так понял, буду благодарен, если разжуете...     

Автор: vovk 6.2.2012, 03:53
Вы прочитали выборочно,
Цитата

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

нет не в той папке где лежит приложение, а в ТЕКУЩЕЙ для ОС папке. А для ос текущая папка может быть другой.

Автор: BEST13 7.2.2012, 11:25
Цитата(vovk @  6.2.2012,  03:53 Найти цитируемый пост)
нет не в той папке где лежит приложение, а в ТЕКУЩЕЙ для ОС папке. А для ос текущая папка может быть другой. 

АА , понял, спасибо) 

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