Страница 1 из 1
Delphi ищет файл базы данных в папке system32
Добавлено: 10 июн 2010, 01:21
Moon
Утановлена Delphi 2009, на компьютер под управлением Windows 7.
В дизайн тайме вываливает вот такое сообщение:

В рантайме все нормально.
Суть проблемы заключается в том, что делфи начинает искать файл базы данных в папке system32, хотя если в пути к базе прописать только имя файла, должно искаться в папке с программой,
собсно на всех предыдущих версиях делфи было так. А вот тут почему то иначе все обстоит.
Такое сообщение вылетает и на айбииксах и фибах.
Re: Delphi ищет файл базы данных в папке system32
Добавлено: 10 июн 2010, 02:41
kdv
хотя если в пути к базе прописать только имя файла, должно искаться в папке с программой,
с чего это Вы взяли? Вовсе не должно.
собсно на всех предыдущих версиях делфи было так.
чудовищное заблуждение.
а) никакие "версии Дельфи", или IBX/FIBPlus не имеют отношения к тому, как СУБД ищет файл БД. Это клиент-сервер, а не файл-сервер. Т.е. файл открывает сервер, и только сервер. Дельфи и прочее - это клиент. Который указывает серверу, какой файл открыть. Не указали путь - получите черт знает что, в зависимости от того, где установлен СЕРВЕР.
б) никогда, ни в InterBase, ни в Firebird, нельзя было указывать имя БД без пути.
Re: Delphi ищет файл базы данных в папке system32
Добавлено: 10 июн 2010, 07:44
Moon
kdv писал(а):хотя если в пути к базе прописать только имя файла, должно искаться в папке с программой,
с чего это Вы взяли? Вовсе не должно.
собсно на всех предыдущих версиях делфи было так.
чудовищное заблуждение.
а) никакие "версии Дельфи", или IBX/FIBPlus не имеют отношения к тому, как СУБД ищет файл БД. Это клиент-сервер, а не файл-сервер. Т.е. файл открывает сервер, и только сервер. Дельфи и прочее - это клиент. Который указывает серверу, какой файл открыть. Не указали путь - получите черт знает что, в зависимости от того, где установлен СЕРВЕР.
б) никогда, ни в InterBase, ни в Firebird, нельзя было указывать имя БД без пути.
Ну, как с чего взял, потому что всегда работало, даже сейчас после перезапуска компьютера первое соединение происходит так как надо, а потом, при реконекте, происходит ошибка.
Re: Delphi ищет файл базы данных в папке system32
Добавлено: 12 июн 2010, 13:02
kdv
Ну, как с чего взял, потому что всегда работало
работало потому, что каталог по умолчанию после логина один, а стоит открыть какой-нибудь файл в другом каталоге, и каталог по умолчанию меняется.
Короче, не разбираетесь - читайте ответы или ищите в гугле. Для IB и FB НИКОГДА не допускалось не указывать путь к базе. Потому что путь по умолчанию зависит от ОС и от действий, которые выполняются в ОС под конкретным аккаунтом.
Re: Delphi ищет файл базы данных в папке system32
Добавлено: 13 июн 2010, 18:25
Moon
да уяснил уже, забыл просто отписать, что в принципе глупая затея - не прописывать путь, тем более, что в реальных проектах база всегда отдельно от программы лежит.
А за пояснение почему все таки работало,отдельное спасибо. Действительно если проект открыть из папки работает и без прописывания пути. Но, как я уже сказал, делать так не стоит

Re: Delphi ищет файл базы данных в папке system32
Добавлено: 14 июн 2010, 04:51
Antoxa
ChDir(ExtractFileDir(Application.ExeName)); - как-то так...
Re: Delphi ищет файл базы данных в папке system32
Добавлено: 14 июн 2010, 11:26
kdv
тем более, что в реальных проектах база всегда отдельно от программы лежит.
в реальных проектах база обычно лежит на отдельном компе, да еще и с неизвестно какой операционкой
