Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
Nikoole
- Сообщения: 10
- Зарегистрирован: 11 ноя 2011, 22:34
Сообщение
Nikoole » 02 дек 2011, 12:59
После подключения к базе с помощью программы IBExpert, при попытке приконнектиться к базе с помощью ibase_connect вылазиет ошибка:
Код: Выделить всё
Warning: ibase_connect() [function.ibase-connect]: I/O error during "@1" operation for file "@2" Error while trying to open file Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
Если в IBExpert разорвать соединение с базой - из php подключение удается.
Ребят, подскажите пожалуйста, как лечить?
Раньше я мог одновременно работать с базой и в IBExpert и из php... а теперь - нет
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 02 дек 2011, 13:08
у тебя в IBExpert небось прописан fbembed.dll в качестве клиентской библиотеки для этой базы
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 02 дек 2011, 13:35
прописать там fbclient.dll
-
Nikoole
- Сообщения: 10
- Зарегистрирован: 11 ноя 2011, 22:34
Сообщение
Nikoole » 02 дек 2011, 13:39
dimitr писал(а):прописать там fbclient.dll
Ребят, где прописать именно?
Если бы я разбирался - не полез бы на форуме помощи просить...
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 02 дек 2011, 13:57
алиас / Database Registration Info / General / Client Library File
-
Nikoole
- Сообщения: 10
- Зарегистрирован: 11 ноя 2011, 22:34
Сообщение
Nikoole » 02 дек 2011, 14:12
Вот такие настройки в IBExpert:
http://images.devs-on.net/Image/z8hCJhM ... Region.png
Вот что по этому пути лежит:
http://images.devs-on.net/Image/7xf0bVC ... Region.png
И вот что получается при коннекте к базе:
http://images.devs-on.net/Image/Ge4gyaO ... Region.png
Что делать - не знаю.. На первом скрине виден еще один GDS32!!!.dll, так вот когда сюда: алиас / Database Registration Info / General / Client Library File прописываю его, то к базе через IBExpert подключиться могу, но при попытке обновить страничку, где происходит коннект к БД выводится это:
http://images.devs-on.net/Image/ETXNIIC ... Region.png (поправил ссылку, до этого какой-то чужой скрин выводился) А если диссконнектнуться в IBExpert - то страничка загрузится номрально.
Помогите разобраться, пожалуйста.
Последний раз редактировалось
Nikoole 02 дек 2011, 14:41, всего редактировалось 1 раз.
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 02 дек 2011, 14:27
ты бы хоть написал, что у тебя за сервер стоит. InterBase или Firebird и какой версии?
пока я вижу, что в %System% лежит gds32.dll от интербейза и в IBExpert прописан локальный путь коннекта. Если сервер на самом деле Firebird, то ошибка "unavailable database" вполне ожидаема. Для начала пропиши в IBExpert в св-вах алиаса Server = Remote, Server Name = localhost, Protocol = TCP/IP. И попробуй подключиться.
при этом, ibase_connect почему-то видит firebird.msg, возможно лезет к базе через файрбердовского клиента. У тебя случайно не запущены одновременно InterBase и Firebird на машине?
ЗЫ. такой зоопарк несовместимого наплодить ты сам разобрался, а исправлять последствия теперь других просишь?
-
Nikoole
- Сообщения: 10
- Зарегистрирован: 11 ноя 2011, 22:34
Сообщение
Nikoole » 02 дек 2011, 14:39
dimitr писал(а):
ЗЫ. такой зоопарк несовместимого наплодить ты сам разобрался, а исправлять последствия теперь других просишь?
Эх, в этом я виновен, правда поустанавливал многого не думая, лишь бы поскорее заработало. Виноват... Теперь не знаю как лечить.
Вот такая штука у меня висит в трее:
http://images.devs-on.net/Image/XEu5hUC ... Region.png - он запускается вместе с денвером.
По вашему совету установил вот такие настройки:
http://images.devs-on.net/Image/iUskXa2 ... Region.png , при попытке коннекта вылазиет вот такое сообщение:
http://images.devs-on.net/Image/cMbMv5m ... Region.png , т.е. из IBExpert подключиться не получается. Однако, если в качестве этой клиентской библиотеки указать второй GDS32!!!.dll - то подключиться получается, однако сайт тогда выпадает с ошибкой (вот с такой
http://images.devs-on.net/Image/ETXNIIC ... Region.png )...
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 02 дек 2011, 14:51
кликни в трее по иконке Firebird-а, посмотри путь где он установлен. Найди там в подкаталоге /bin файл fbclient.dll, пропиши его в IBExpert-е вместо gds32.dll. Попробуй подключиться. Возможно, GDS32!!! - это как раз переименованный FB-шный клиент, раз он не требует наличия gds_db/tcp.
в таком случае остается всего один вариант - PHP лезет в базу через embedded-библиотеку, причем явно не от Firebird 2.5. Копай его параметры, тут я не помощник. Заставить все это работать можно двумя способами:
1) заменить у PHP коннект через fbembed.dll (она может называться и gds32.dll, но будет иметь размер больше мегабайта) на коннект через fbclient.dll, не забыв добавить к строку подключения имя хоста
2) переустановить Firebird в версии Classic вместо SuperServer, убедившись что PHP подключается через fbembed.dll версии не ниже 2.5
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 04 дек 2011, 03:07
кстати, почему у тебя галка always capitalaize object names на странице коннекта к БД в IBE выключена? Сильно хочется геморроя с двойными кавычками? см. faq на сайте.
И чарсет коннекта к базе NONE, что тоже может иметь веселые последствия (если стольбцы в базе не в none).
-
Nikoole
- Сообщения: 10
- Зарегистрирован: 11 ноя 2011, 22:34
Сообщение
Nikoole » 04 дек 2011, 12:50
Ребят, спасибо за советы.
Вчера и сегодня бился - не помогает пока ничего.
На сколько я понимаю, произошла путаница с этими dll. Все это возникло после того как я обновил firebird с 2.1 до 2.5... И не знаю что теперь блин делать... Все ваши советы попробовал...
Буду еще биться.
И уж совсем обнаглею: может у кого-нибудь найдется времечко по teamviewer глянуть? Уже руки опускаются... :-[
kdv, спасибо за советы.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 05 дек 2011, 10:50
а чего биться-то? делаешь поиск всех gds32.dll или fbclient.dll на компе. Все лишние, и не соответствующие fbclient.dll в папке от 2.5, удаляешь. Потом пускаешь instclient i -f gds (мог напутать, запусти instclient из bin FB25 в командной строке). Все.
-
Nikoole
- Сообщения: 10
- Зарегистрирован: 11 ноя 2011, 22:34
Сообщение
Nikoole » 05 дек 2011, 11:37
Оххх...
В общем проблему решил так (методом тыка после ваших подсказок, естественно, за что огромное спасибо!):
Попробовал запустить две копии IBExpert, подключиться к одной и той же базе - и о, чудо! Оно заработало! Это натолкнуло на мысль какую-то, уже не помню (
), и я полез в свой файл conf.php где заменил это:
$host = "localhost:".$_SERVER['DOCUMENT_ROOT']."\bases\BACKUP.FDB";
на это:
$host = "F:\WebSerwer\home\expertd.ru\www\bases\backup.fdb";
Хотябы так...