Как исправить ошибку unavailable database

Модератор: Модераторы

Как исправить ошибку unavailable database

Сообщение qubasesx » 06.05.2011 19:53:47

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

Написал маленькую прогу на Lazarus для работы с FireBird (у меня установлена версия 2,5) в ОС WindowsXP (32).
Для связи с БД использую стандартный IBConnection из палитры SQLdb. На компьютере, на котором всё это разрабатывал всё работает.

Переношу Exe-шник и базу на другой комп (ОС WindowsXP (32), FireBird установлен) и чёй-то работать не хочет...
Пишет: IBConnection1: DoInternalConnect: - unavailable database.

Пробовал следующее:
1) Помещал EXe-шник с базой в разные места =) (в английские и русские папки, в корень диска). Никак..
2) Делать так:
Код: Выделить всё
procedure TFormMain.FormActivate(Sender: TObject);
begin
IBConnection1.DatabaseName := AnsiToUtf8(ExtractFilePath(Application.ExeName)+'BASE.FDB');
end;


Тоже результата нет...

Как быть?
qubasesx
новенький
 
Сообщения: 16
Зарегистрирован: 07.03.2011 00:15:34
Откуда: Орехово-Зуево

Re: Как исправить ошибку unavailable database

Сообщение Little_Roo » 06.05.2011 20:53:11

qubasesx писал(а):
Код: Выделить всё
procedure TFormMain.FormActivate(Sender: TObject);
begin
IBConnection1.DatabaseName := AnsiToUtf8(ExtractFilePath(Application.ExeName)+'BASE.FDB');
end;


Вроде должно быть '\BASE.FDB' (сплю, или глючу...не плюйте в мою сторону - сессия началась, прИнять зачеты у полутора сотен 9- 10- 11- классников ... бр-р-р-р-р )

Да, а сервер или клиент FireBird на другой машине установлены ?
Последний раз редактировалось Little_Roo 06.05.2011 21:04:53, всего редактировалось 1 раз.
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Как исправить ошибку unavailable database

Сообщение Nik » 06.05.2011 21:01:51

Little_Roo писал(а):Вроде должно быть '\BASE.FDB'


ExtractFilePath возвращает с косой чертой в конце. ExtractFileDir - без косой черты.

2qubasesx
Не пробовали без AnsiToUtf8 путь получать?
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Как исправить ошибку unavailable database

Сообщение qubasesx » 06.05.2011 21:10:41

Nik писал(а):ExtractFilePath возвращает с косой чертой в конце. ExtractFileDir - без косой черты.

В точку
Nik писал(а):Не пробовали без AnsiToUtf8 путь получать?

Пробовал, результ не меняется...
qubasesx
новенький
 
Сообщения: 16
Зарегистрирован: 07.03.2011 00:15:34
Откуда: Орехово-Зуево

Re: Как исправить ошибку unavailable database

Сообщение Little_Roo » 06.05.2011 21:15:04

Nik писал(а):
Little_Roo писал(а):Вроде должно быть '\BASE.FDB'

ExtractFilePath возвращает с косой чертой в конце. ExtractFileDir - без косой черты.

Извините, точно тормознул... :oops:
А вот на счет путей... по м-а-а-а-а-ленькому опыту траха с птицей (шоб менэ ний споймалы зеленые :mrgreen: ) - есть проблема при переносе приложения с компа на комп - локальные адреса НЕ всегда проходят. Поменял ВСЕ АДРЕСА на TC/IP - Фурыкает...
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Как исправить ошибку unavailable database

Сообщение qubasesx » 06.05.2011 21:20:00

Little_Roo писал(а):Поменял ВСЕ АДРЕСА на TC/IP - Фурыкает...

Получается, что нужно писать прогу под конкретный IP? Тоесть если переносить прогу на др. комп, то и IP в системе менять на специальный? Так?
qubasesx
новенький
 
Сообщения: 16
Зарегистрирован: 07.03.2011 00:15:34
Откуда: Орехово-Зуево

Re: Как исправить ошибку unavailable database

Сообщение Little_Roo » 06.05.2011 21:45:08

qubasesx писал(а):
Little_Roo писал(а):Поменял ВСЕ АДРЕСА на TC/IP - Фурыкает...

Получается, что нужно писать прогу под конкретный IP? Тоесть если переносить прогу на др. комп, то и IP в системе менять на специальный? Так?

База какая - сетевая или локальная?
ОСь, Лазарь, фпц, сервер базы данных какой ?
Какие компоненты к доступу к базе ???
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Как исправить ошибку unavailable database

Сообщение qubasesx » 06.05.2011 21:54:31

БД - Локальная.
ОС - Windows XP SP3, 32-разрядная
Lazarus - 0.9.30
FPC - 2.4.2
Сервер БД - FireBird 2.5.0.26..., SuperServer
Компоненты доступа - IBConnection, SQLQuery, SQLTranzaction
qubasesx
новенький
 
Сообщения: 16
Зарегистрирован: 07.03.2011 00:15:34
Откуда: Орехово-Зуево

Re: Как исправить ошибку unavailable database

Сообщение Little_Roo » 06.05.2011 22:08:32

qubasesx писал(а):БД - Локальная.
ОС - Windows XP SP3, 32-разрядная
Lazarus - 0.9.30
FPC - 2.4.2
Сервер БД - FireBird 2.5.0.26..., SuperServer
Компоненты доступа - IBConnection, SQLQuery, SQLTranzaction

Может меня поправят гуру - НО... по неясным для меня причинам (а проще говоря - лень было копать...) - не всегда приложение (как клиент) коннектилость к базе, а вот стоило проинсталлировать сервер - 0К!

2 qubasesx
А может проще, и надежнее, убрать IBConnection и перейти на Zeos ?
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Как исправить ошибку unavailable database

Сообщение qubasesx » 06.05.2011 22:37:41

Итак, отчёт.
После серии экспериментов выявлена следующая хитрость компонента IBConnection.
Если в свойстве DatabaseName написать 192.168.0.5:C:\Elektroizolator\BASE.FDB (свой ip и ПОЛНЫЙ (важно) адрес к exe-шнику а потом ещё добавить процедуру:
Код: Выделить всё
procedure TFormMain.FormActivate(Sender: TObject);
begin
IBConnection1.DatabaseName := Application.ExeName+'BASE.FDB';
end;

то всё чудесным образом начинает работать (проверено на 3-х компьютерах). Идиотизм если задуматься, но работает)))
Little_Roo, благодарю за мысль!
Little_Roo писал(а):А может проще, и надежнее, убрать IBConnection и перейти на Zeos ?

А правда будет надёжнее? Я просто думал, что раз компонента до сих пор поставляется в лазаре, то она самая надёжная? Нет?
qubasesx
новенький
 
Сообщения: 16
Зарегистрирован: 07.03.2011 00:15:34
Откуда: Орехово-Зуево

Re: Как исправить ошибку unavailable database

Сообщение Little_Roo » 06.05.2011 23:14:59

qubasesx писал(а):Если в свойстве DatabaseName написать 192.168.0.5:C:\Elektroizolator\BASE.FDB (свой ip и ПОЛНЫЙ (важно) адрес к exe-шнику
то всё чудесным образом начинает работать (проверено на 3-х компьютерах). Идиотизм если задуматься, но работает)))
Little_Roo, благодарю за мысль!


Вообще-то Птица позволяет коннетиться к нерасшаренной базе - чем я у себя в гимназии и пользуюсь - строка коннекта выводится (для директора и завуча) - а пионЭры базочку не...и не видят.... (вот я сволочь какая учительская :shock: )
qubasesx писал(а):Little_Roo писал(а):А может проще, и надежнее, убрать IBConnection и перейти на Zeos ?
А правда будет надёжнее? Я просто думал, что раз компонента до сих пор поставляется в лазаре, то она самая надёжная? Нет?

Насчет того, что до сих пор поставляется....хорошие, простые, понятные, надежные...до поры...жигули....
А вот если Вы хотите озаботиться некоем проектом, да над сетью (где клиентов явно >1), то ip, zeos, ..." ...и ради бога, не читайте советских газет..."(С)(профессор Преображенский)
В догонку -
при работе с Птицей - на локальной (своей машине) устанавливать ТОЛЬКО коннект TCP/IP
В путях - либо
localhost:{ваш путь к базе}
либо
127.0.0.1:{ваш путь к базе}

Да, совсем забыл, что было мне непонятно -
Ваша база локальная ? Тобишь каждая копия ея располагается на компах, чье число > 1 и редактирование доступно юзеру данного компа и не доступно остальным, или же эта база доступна по сети клиентам, и тогда появляется термин многопользовательский доступ... Или....???
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Как исправить ошибку unavailable database

Сообщение qubasesx » 06.05.2011 23:57:21

Little_Roo писал(а):Ваша база локальная ? Тобишь каждая копия ея располагается на компах, чье число > 1 и редактирование доступно юзеру данного компа и не доступно остальным, или же эта база доступна по сети клиентам, и тогда появляется термин многопользовательский доступ... Или....???

На данный момент она локальная, с ней работает человек, составляющий план выпуска электроизоляторов. Но попозже придётся делать, чтобы к ней могли подключаться и пользователи с других компьютеров (технологи будут вносить в список производимых на предприятии изделий свои корректировки: % брака, диаметр и т.д. изделий). Но хотя это и будет в будущем, сейчас уже, как я понял из ваших слов, нужно понять, всё-таки продолжать работать с IBConnection или же переделать на Zeos, пока программного кода ещё мало.
qubasesx
новенький
 
Сообщения: 16
Зарегистрирован: 07.03.2011 00:15:34
Откуда: Орехово-Зуево

Re: Как исправить ошибку unavailable database

Сообщение Little_Roo » 07.05.2011 01:12:31

или же переделать на Zeos, пока программного кода ещё мало
.
Лучше так - проверено...
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Как исправить ошибку unavailable database

Сообщение Vadim » 07.05.2011 04:21:31

qubasesx
qubasesx писал(а):Сервер БД - FireBird 2.5.0.26..., SuperServer

Насколько я понял Вашу проблему - Вы на каждой из машин целиком тавите сервер FireBird? Есть специальная версия - Embedded. И раз уж Вы утверждаете, что БД используется локально, ею не пробовали пользоваться?
http://sourceforge.net/projects/firebir ... p/download
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как исправить ошибку unavailable database

Сообщение Nik » 07.05.2011 10:43:36

Имхо, для сугубо локальных БД лучше вообще SQLite использовать :) Никакого геморроя :)
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

След.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 5

Рейтинг@Mail.ru