|
Вопрос # 777/ вопрос открыт / |
|
Уважаемые эксперты! Работаю с БД FB 2.0. Если программа (D7, используется IBX) работает на локальном компьютере (там же, где находится файл БД) проблем никаких! Если же эту базу перекинуть на другой комп (одноранговая локальная сеть без доменов, на всех компах WinXP SP2) и в пути у IBDatabase указать путь (типа \\Comp2\C\BD.GDB), то при открытии IBDatabase выдается ошибка (I/O error for file "C\BD.GDB. Системе не удается найти указанный путь). FB 2.0 установлен на обоих компах. Не подскажете, как решить эту проблему?
 |
Вопрос задал: Ed (статус: 1-ый класс)
Вопрос отправлен: 23 июля 2007, 11:53
Состояние вопроса: открыт, ответов: 3.
|
Ответ #1. Отвечает эксперт: Помфюк Владимир Степанович
Здравствуйте, Ed!
В Firebird\'e путь на другой комп надо указывать так:
comp2:c:\bd\gdb
причём сам диск С не обязательно должен быть открыт для доступа
 |
Ответ отправил: Помфюк Владимир Степанович (статус: Абитуриент)
Время отправки: 23 июля 2007, 12:29
Оценка за ответ: 3
Комментарий к оценке: Работает частично.
Если запускаю клиентскую программу на сервере с таким путем - все нормально! Но этот же клиент на клиенском компе выдает ошибку "Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера".
Сеть же пингуется без проблем.
|
Ответ #2. Отвечает эксперт: Вадим К
Здравствуйте, Ed!
Это вы таким образом решили сделать многопользовательский доступ? Ужас.
Итак, по порядку. Для начала читаем документацию, там большими буквами сказано, что делать так как вы зделали - нельзя.
1) на машине-сервере должа быть база и собственно сам сервер
2) на машине клиента должа быть долько gds32.dll (кажеться так называется). Сервер ей не надо.
3) папку с файлом не только не надо расшаривать, а и противопоказано это делать.
4) в параметрах клиента на подключение к серверу надо указать адрес оного, путь к базе относительно сервера(выделенное читать до полного понимания!), имя и пароль.
P.S. Два сервера СУБД с одним файлом работать не будут. Они его "порвут как Тузик грелку". Почему так? читайте книги.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 23 июля 2007, 12:30
Оценка за ответ: 2
Комментарий к оценке: К сожалению вся документация - типа firebird-1.5-quickstart - где все в общих словах.
по ответу 2) - если не расшаривать папку с файлом - как серверу указать, что нужно открыть эту базу, а не другую?
по ответу 4) Можете указать пример написания пути?
|
Ответ #3. Отвечает эксперт: Feniks
Здравствуйте, Ed!
"Вадим К" совершенно верно тебе ответил !!! Именно так и строится схема технологии клиент-сервера на FB/IB.
В нашей конторе прекрасно по такой схеме работают целый ряд БД и серверов ФБ.
1) на машине-сервере должен быть файл база и стоять серверная часть ФБ. можно даже с дополнительными его тулзами ;-)
2) на машине-клиента должен быть долько gds32.dll (это старое название еще с IB, в более поздних версия ФБ он уже по дефолту переименовывается в firebird.dll, но это можно при инсталяции указать). Сервер ей не надо.
Если мне память не изменяет, то в самой инсталяции ФБ ты выбираешь что ставить: сервер или клиент.
3) "папку с файлом не только не надо расшаривать, а и противопоказано это делать." А вот это уже на любителя. На работу ФБ это никак не сказывается. Только разве что из соображений безопастности.
4) в параметрах клиента на подключение к серверу надо указать адрес компа-сервера и путь к базе относительно сервера, имя и пароль (если по дефолту, то имя sysdba и пароль masterkey).
Если в адресе указываешь имя компа, то писать следует так:
<имя сервера:><имя диска:\><полный путь к файлу бд>.
Например:
server_name:c:\firebird\mybd.gdb
А если ты указываешь все это не в компоненте, а в алиасе BDE, то там чуть по другому, не помню точно как, но что-то в этом роде:
server_name\c\firebird\mybd.gdb
\\server_name\c\firebird\mybd.gdb
server_name:c:\firebird\mybd.gdb
\\server_name:c:\firebird\mybd.gdb
Но тут я могу ошибатся.
P.S. И еще. ФБ не дружит с IB на одном компе. Надо ставить что-то одно.
И обрати внимание на диалект базы. Если она создавалась на более новом (2-м или 3-м) диалекте, то на ранних версиях ФБ с 1-м диалектом будут проблемы.
Да, вот еще что. Я натыкался на такие грабли, когда база сделана на IB он коряво работала с FB...
Так что, тут лучше сразу создавать базу на ФБ с определенным диалектом (про него можно в доках почитать или в инете, они отличаются тока расширениями по SQL).
P.SS. Хоть и пишут в мурзилках по ФБ, что она теперь поддерживает базы размером свыше 2 Гиг, все это чушь. Ни одна база у нас размером более 200 метров работать нормально не захотела. Начались глюки и траблы с БД. Хотя, может у кого-то оно и работает на громадных базах.
 |
Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 24 июля 2007, 12:44
Оценка за ответ: 5
Комментарий к оценке: По существу
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 23 июля 2007, 15:20; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 23 июля 2007, 13:23 [#1]:
Ed!
Я чётко написал как указывать путь. Вы мало того, что прочитать не хотите, а ещё и оценки ставите низкие.
Это не четыре варианта ответа. Это последовательность действий.
Но повторяю ещё раз: путь хоть и указывается на клиенте, но пишеться как серверу искать файл у себя на сервере.
Клиенту не нужен доступ к папке. Он нужен серверу!
для особо одарённых. если у вас файл базы данных находиться в C:\test\basa.fbd, то этот путь и надо указывать на клиенте.
Если файл базы данных будет доступен клиенту по расшаренной папке - это прямая угроза безопасности, ибо скачав файл себе на диск, его можно открыть. Даже если вы понаставляли паролей.
Замечу, что некоторые компоненты могут принимать параметры подключения в виде отдельного указания имени адреса сервера и пути, а некоторые требуют хитрого в виде
сервер:путь на сервер.
>>: К сожалению вся документация - типа firebird-1.5-quickstart - где все в общих словах.
Сразу вижу - не читали. Ибо открывши сей документ на страничке 14 (что бы не было разногласий в версиях файла, я брал отсюдова http://www.firebirdsql.org/pdfmanual/Firebird-1.5-QuickStart.pdf) вы убедились, что документ достаточно подробный.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Вадим К (статус: Академик), 23 июля 2007, 14:56 [#3]:
Может фаервол порт блокирует?
Сообщение вы видите на русском?
попробуйте к нему подключится тенетом. Эта программа есть практически на каждой машине. Запускаем с коммандной строки так
telnet адрес_сервера 3050
Если скажет, что неможет подключиться, значит фаервол срезает. Если что то появилось в консоли, а потом появиться, что соединение разорвано сервером - тогда нормально.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ed (статус: 1-ый класс), 23 июля 2007, 15:20 [#4]:
Вадим К
ГУРУ!
Где мне тебя пятак поставить!
Сразу бы так!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|