8.х ОБМЕН Firebird: подключение по сетевому пути

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем antares, 6 ноя 2013.

  1. TopicStarter Overlay
    antares
    Offline

    antares Опытный в 1С

    Регистрация:
    30 ноя 2006
    Сообщения:
    340
    Симпатии:
    7
    Баллы:
    29
    Платформа 8.2, обычное приложение.

    Есть внешняя база на Firebird 2.5. При подключении к базе с локальным местонахождением через ADODB(т.е. на локальных дисках) подключение происходит нормально. Но как только я указываю в подключении сетевой путь до файла, то получаю сообщение "File database not found". Понятно, что не найдена. Вопрос: почему? Это особенность самого Firebird'a, или я сам туплю при подключении? Подскажите, кто знает.

    Код:
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.Заголовок = "Укажите файл обмена данными";
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
    Если НЕ ДиалогОткрытияФайла.Выбрать() тогда 
    Предупреждение("Файл не выбран.",5);
    Возврат; 
    КонецЕсли;
    Соединение = Новый COMОбъект("ADODB.Connection");
    Команда = Новый COMОбъект("ADODB.Command");                                                                                                   
    МатериалыБМ = Новый COMОбъект("ADODB.RecordSet");
    Соединение.ConnectionString = "Driver=Firebird/InterBase(r) driver;Dbname="+СокрЛП(ФайлОбмена)+";UID=SYSDBA;PWD=masterkey;CHARSET=UTF8;client=C:\Program Files\Firebird\BazisFirebird 2.5\bin\fbclient.dll";
    Соединение.ConnectionTimeOut =1200;
    Соединение.CursorLocation = 3;
    ...
    
    Команда.ActiveConnection = Соединение;
    Команда.CommandType = 1;//запрос на языке SQL
    Команда.Commandtext = СокрЛП(ТекстЗапроса);
    МатериалыБМ.ActiveConnection = Соединение;
    МатериалыБМ.Open(ТекстЗапроса,Соединение,2,3);
  2. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а в переменная ФайлОбмена чему равна когда сетевой путь?

    вот тут например по ip обращаются _http://firebirdsql.su/doku.php?id=podkljuchenie_k_baze_dannyx_iz_1s
  3. TopicStarter Overlay
    antares
    Offline

    antares Опытный в 1С

    Регистрация:
    30 ноя 2006
    Сообщения:
    340
    Симпатии:
    7
    Баллы:
    29
    я пробовал 2 варианта: прямое обращение через сетевое окружение и через подключение сетевого диска; в обоих случаях ответ тот же, база не найдена; но в случае сетевого диска путь был как при локальном обращении (например, z:\...\имя_файла.fdb), но видимо осью путь конвертируется все равно в сетевое описание (или в описание через IP) и в результате опять клиент не видит базу.
  4. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    может глупо, но предположу, по сетевому пути .. там dll зарегистрирована?
  5. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    попробуйте как в примере по ссылке путь прописать к базе
  6. TopicStarter Overlay
    antares
    Offline

    antares Опытный в 1С

    Регистрация:
    30 ноя 2006
    Сообщения:
    340
    Симпатии:
    7
    Баллы:
    29
    обижаете)) ну конечно же, подняты в сервисе сервер и гуардиан, клиент и дрова ODBC зареганы; напомню, локально подключение происходит (там где база), а вот с другого компа нет
  7. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ни в коем случае не хотела :) просто в свое время работала с FB, IB толкьо с delphi и C, потому тоже интересно как оно сосуществует с 1C
  8. TopicStarter Overlay
    antares
    Offline

    antares Опытный в 1С

    Регистрация:
    30 ноя 2006
    Сообщения:
    340
    Симпатии:
    7
    Баллы:
    29
    Подключился!! Получилось подключиться через сетевой адрес, причем важен синтаксис адреса (IP, пр.слэш, порт, двоеточие, путь). Всем спасибо! По ходу дела подумал, а нельзя ли таким же образом подключаться к любой базе в сети, в том числе и базам 1с? тогда важную информацию можно хранить гдето в сети, по необходимости подключаясь к адресу. Так, мысли вслух.)

    p.s. порт можно найти в инишниках firebird...

Поделиться этой страницей