I’ve got a seemingly unique issue on just one computer in the company (had to be my boss’s). I’ve got a program from Borland C++ that uses a TSQLConnection. It connects to a local Firebird server 2.1.1.17910 running as an application. The other computers work fine.
It will absolutely not connect on this one lappy (local server) for anything. I remember he always had trouble with InterBase when it was installed as well. I think he installed up to 7.5 possibly. It’s gone now and I went through and wiped out any old GDS32.dll files and updated them with the FireBird ones, and the connection is using fbclient.dll anyways…
I tried uninstalling and reinstalling FB and running it as a service. Didn’t work.
I went into etc/services and added in this line:
gds_db 3050/tcp #Firebird
No dice.
Sticking «localhost:» in front of the database location gets this error
Unable to complete network request to host «localhost».
Failed to establish a connection.
I checked netstat, it’s listening on 127.0.0.1 port 3050…
Tried sticking «127.0.0.1:» before the database location, I get:
connection rejected by remote interface
Tried taking 127.0.0.1 or localhost out entirely and just using the database location, which is the right location, I get
Unavailable Database.
The exact same CD works fine on other machines. I tried sticking «localhost», «127.0.0.1», and nothing at all in front of the database location and all connect fine on other machines.
I’ve made him turn his firewall off, still no dice… This problem has been going on for a long time and I’m at the end of my rope. I’ve tried everything I can possibly think of. It works fine on my computer, blank test computers, for the beta testers… everybody except my boss. Any help would be vastly appreciated.
03.03.21 — 18:30
Всем доброе время суток !
Ситуация следующая.
Есть база Firebird на компе в сети (пропускная система).
Надо к ней подключиться из 1С.
Через консоль с компа все отлично подключается — то есть по идее все нормально с правами, драйверами и т.п.
Но через 1С хоть ты тресни никак не хочет.
Текст кода
Conn = Новый COMОбъект(«ADODB.Connection»);
Conn.ConnectionString = «DRIVER=Firebird/InterBase(r) driver;» +
«DBNAME=KD-SKUD-01:C:Program Files (x86)ENTServerDBCBASE.FDB;» + // Исправьте на свой IP, порт и путь к базе данных !
«UID=SYSDBA;» + // Исправьте на свое имя пользователя !
«PWD=masterkey;» + // Исправьте на правильный пароль !
«CHARSET=WIN1251;» + // Исправьте на свою кодировку подключения !!!
«C:Program Files (x86)FirebirdFirebird_2_1binfbclient.dll»;
Conn.ConnectionTimeout = 180;
Conn.CursorLocation = 3;
// Подключаемся к базе данных
Попытка
Conn.Open(Conn.ConnectionString);
Сообщить(«успешно подключились к базе проходной»);
Исключение
Сообщить(«Не удалось выполнить подключение » + ОписаниеОшибки());
КонецПопытки;
Выдает ошибку
«Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию»
При этом через консоль Fireboird с этого же компа под этим же пользователем с таким расположением DB все подключается.
В чем может быть дело ?
1 — 03.03.21 — 18:50
не установлен драйвера одбу
2 — 03.03.21 — 20:16
(1) Установлен.
1. Панель управленияВсе элементы панели управленияАдминистрирование
Firebird/InterBase(r) driver
Версия 2.00.01.152
2. Консолью Firebird подключение к базе идет. Если бы драйвера не было то подключение консолью бы не проходило.
3 — 03.03.21 — 20:31
Сейчас выяснится, что этот код &НаСервере…
4 — 03.03.21 — 20:47
64×32
5 — 03.03.21 — 20:48
мож «CLIENT=C:Program Files (x86)FirebirdFirebird_2_1binfbclient.dll»;
6 — 03.03.21 — 21:02
(0) старый добрый Firebird…аж вздрагиваю при его упоминании…
7 — 03.03.21 — 21:15
консоль fb не юзает одбц, а нативно подкючается
8 — 04.03.21 — 11:54
(3) Да в этом дело оказалось.
Пробовал это сделать в модуле объекта отчета на СКД. Сделал для проверки на клиенте — все работает.
Еще один момент можешь подсказать ?
При подключении внешнего источника данных с этой же строкой подключения выдает сообщение
Ошибка ODBC. SQLSTATE: IM002
Номер ошибки: 0
Описание: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
Я правильно понимаю что для того чтобы подключить внешний источник данных надо
1. Драйвер ставить на сервере 1С
2. Драйвер ставить той же разрядности как и сервер 1С.
9 — 04.03.21 — 11:54
(6) Что делать — БД пропускной системы на нем крутится.
10 — 04.03.21 — 12:29
(8) >> Я правильно понимаю что для того чтобы подключить внешний источник данных надо…
Да, все верно.
11 — 04.03.21 — 12:32
А вообще, никогда не понимал людей, пишущих: ConnectionString = «DRIVER=такой-то, DBNAME=такая-то, UID=такой-то и т.д.».
Намного проще создать в системе DSN, а в коде написать «dsn=такой-то».
12 — 04.03.21 — 12:35
(11) Хорошо, что мне не приходилось править твой такой код…
13 — 04.03.21 — 12:36
(12) ОК, аргументируй. Что не так?
14 — 04.03.21 — 12:38
(13) Лишние движения телом.
15 — 04.03.21 — 12:39
И переносимость. Забудешь ты притащить в прод свой дсн и ага.
16 — 04.03.21 — 12:41
(15) Ну это не аргумент. Точно так же на продуктовом сервере можно забыть установить драйвер, забыть изменить имя/логин/пароль для базы и т.д.
17 — 04.03.21 — 20:58
(11) >Намного проще создать в системе DSN, а в коде написать «dsn=такой-то».
Если тебе не нравится писать в коде «DBNAME=такая-то» то никто не мешает хранить значение «DBNAME=такая-то» где угодно — в табличной части, в регистре сведений и т.п.
18 — 04.03.21 — 21:02
(10) При работе на сервере появился новый прикол
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
При этом подключение идет под теми же данными как и с локальной машины. То есть при подключение с локальной машины подключение проходит, на сервере под этими же данными нет.
Что бросается в глаза — версия драйвера на сервере другая. Может при изменении версии драйвера поменялся синтаксис подключения ?
19 — 05.03.21 — 00:33
(18) может все таки в разные базы ломишься?.. если что диск С на клиенте не всегда равно диск С на сервере
20 — 05.03.21 — 11:37
(19) >может все таки в разные базы ломишься
Да нет в одну и ту же.
DBNAME=KD-SKUD-01:C:Program Files (x86)ENTServerDBCBASE.FDB
Это расположение БД пропускной системы на другом компе в сети. Если я со своего компа присоединяюсь с клиента то все нормально. Если с сервера с такой же строкой подключения выдает
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Как может быть что под однги ми и теми же учетными данными
UID=SYSDBA
PWD=masterkey
с клиента пускает а с сервера нет ? Это бред какой то реальный.
21 — 05.03.21 — 11:41
Вот это прикол
«Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
Возникает вопрос — как же подключаться к Firebird на сервере если там 64 разрядная 1С ? И 32 разрядный драйвер Firebird не сработает.
22 — 05.03.21 — 11:43
(21) Ставить 64 разряда драйвер. Нет?
23 — 05.03.21 — 11:59
(22) Смотри что получается
Сейчас стоит 64 разрядный драйвер.
При попытке подключения «на сервере» выдает
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Это происходит по причине того что 64 разрядный драйвер с сервера пытается подключиться в базу Firebird которая создана в 32 разрядном приложении.
И при этом возникает вот этот нюанс
«Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
При этом 64 разрядный сервер не ставит 32 разрядный драйвер Firebird. Который нужен для обхода ограничения
>»Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
24 — 05.03.21 — 12:04
Ну значит капец. С твоей базой можно работать только через 32 разрядную 1С.
25 — 05.03.21 — 12:04
26 — 05.03.21 — 18:21
(25) Так там конкретики нет
> я наткнулся на веб-сайт, который предложил изменить реестр для решения другой проблемы.
На какой сайт ?
>Я закончил создание соединения ODBC непосредственно под HKLMSoftwareODBC
Что он конкретно менял ?
27 — 05.03.21 — 18:38
У кого то работает подключение к Firebird через внешние источники данных на сервере 64 разрядном ?
28 — 06.03.21 — 13:15
Прекрасно можно подключаться к 32 из 64 и наоборот,только разрядность установленного odbc драйвера должна совпадать с разрядностью приложения.
Ставим на сервер odbc64 и в путь.
29 — 06.03.21 — 13:17
Ну и надо понимать,что сервер — это служба,запущенная на конкретной машине,и в строке подключения указывается ее адрес,а путь базы уже указывается относительно этой службы и на той машине,где она установлена.
30 — 09.03.21 — 13:23
(28) >Прекрасно можно подключаться к 32 из 64 и наоборот,только разрядность установленного odbc драйвера должна совпадать с разрядностью приложения.
Ничего подобного
В (23) это подробно описано
Сейчас стоит 64 разрядный драйвер.
При попытке подключения «на сервере» выдает
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Это происходит по причине того что 64 разрядный драйвер с сервера пытается подключиться в базу Firebird которая создана в 32 разрядном приложении.
И при этом возникает вот этот нюанс
«Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
Не откроет базу данных созданную в Firebird 32 bit с сервере где установлен драйвер Firebird 64 bit.
А 32 разрядный драйвер Firebird на сервер 64 bit не ставится.
31 — 09.03.21 — 13:26
(28) >Прекрасно можно подключаться к 32 из 64 и наоборот,
Нет нельзя.
При попытке подключения из 64 в 32 выдает
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Причина в том что
«Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
32 — 09.03.21 — 13:59
(31) фб должен быть 32 бит, а одбц — 64
33 — 09.03.21 — 14:01
ты напрямую к файлу обращаешься, а не к серверу чтоли?
34 — 09.03.21 — 15:16
В сообщении об ошибке явно намекают про юзера и пароль. При чем тут 64 и 32. Фигня какая то. С правами надо разбираться.
35 — 09.03.21 — 15:20
Можно же явно указать клиента в параметрах подключения. Поставить ODBC 64 и клиента 64 и всё будет работать.
36 — 09.03.21 — 15:45
(31) Значит, что-то у тебя не так. У меня точно такая же ситуация: база изначально работала с х32-приложением, потом понадобился доступ к ней из 1С. В настоящее время мы работаем с этой базой данных как из 32-разрядного дельфёвого приложения, так и из 64-разрядного сервера 1С.
37 — 09.03.21 — 15:47
Создай на сервере, где развернут сервер 1С источник DSN и протестируй оттуда.
38 — 09.03.21 — 15:49
(37) Да автор уже, наверное, доложил начальству о фатальной ошибке в Fierbird и успокоился 🙂
39 — 09.03.21 — 15:50
уж неделя прошла
40 — 09.03.21 — 15:53
(39) Ну, последнее сообщение он два часа назад написал.
41 — 09.03.21 — 16:06
(32) >фб должен быть 32 бит, а одбц — 64
Так и есть.
42 — 09.03.21 — 16:08
(33)
>ты напрямую к файлу обращаешься, а не к серверу чтоли?
К какому серверу ? Я подключаюсь к файлу
DBNAME=KD-SKUD-01:C:Program Files (x86)ENTServerDBCBASE.FDB
Этот файл лежит на компе с пропускной системой. И там база 32 bit.
При подключении с локальной машины при использовании драйвера Firebird 32 bit все проходит отлично.
Но как только подключение к этому же файлу идет с использованием 64 разрядного драйвера Firebird (через сервер 1С) валится ошибка
При попытке подключения из 64 в 32 выдает
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
43 — 09.03.21 — 16:09
(34) > При чем тут 64 и 32
При том что
«Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
А именно этот фокус пытается провернуть 64 разрядный драйвер когда лезет в 32 разрядную базу Firebird.
44 — 09.03.21 — 16:12
(35) >Поставить ODBC 64 и клиента 64 и всё будет работать.
Нет не будет.
Еще раз
Как только клиент (драйвер) меняется с 32 разрядного на 64 разрядный и идет попытка подключения к 32 разрядной базе Firebird валится ошибка
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Обход этот ошибки только
1. Конвертация базы Firebird в 64 разрядную
2. Работа с 32 разрядной базой Firebird с клиента с использованием драйвера 32 bit
3. Работа с 32 разрядной базой Firebird из файловой базу с клиента с использованием драйвера 32 bit.
45 — 09.03.21 — 16:14
(35) >Можно же явно указать клиента в параметрах подключения.
Что ты укажешь явно ?
На сервере 1С который 64 bit
1. Драйвер 32 разрядный не ставится.
2. При попытке подключения из 64 сервера 1С в 32 базу Firebird выдает
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
46 — 09.03.21 — 16:16
Я перечитал кучу статей на Инфостарте на эту тему.
Народ только такие способы нашел
1. Конвертация базы Firebird в 64 разрядную
2. Работа с 32 разрядной базой Firebird с клиента с использованием драйвера 32 bit
3. Работа с 32 разрядной базой Firebird из файловой базу с клиента с использованием драйвера 32 bit.
Напрямую с сервера 64 bit в базу Firebird 32 bit никто не победил.
47 — 09.03.21 — 16:22
(37) >Создай на сервере, где развернут сервер 1С источник DSN и протестируй оттуда.
Если речь идет про ВнешниеИсточникиДанных то при подключении из 1С в базу Firebird используется как раз драйвер 64 bit с сервера 1С.
С такой же ошибкой как это происходит при попытке подключиться обработкой на сервере.
Те же грабли только в профиль.
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
48 — 09.03.21 — 16:27
(36) >В настоящее время мы работаем с этой базой данных как из 32-разрядного дельфёвого приложения, так и из 64-разрядного сервера 1С.
Возможно в вашем приложении нет такого жесткого ограничения какое есть у Firebird
>»Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
49 — 09.03.21 — 16:43
С какого перепугу «Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
Сервер же на другом компе. Ему пофиг разрядность клиента. Он же через сеть общается. У меня вот работает сервер на 32 и подключаюсь я 64 битным клиентом.
50 — 09.03.21 — 16:49
С правами там что то. Написано же черным по белому.
51 — 09.03.21 — 17:04
(47) Речь в (37) идет НЕ про внешние источники данных.Речь там идет вообще не про 1С.
Открой в Виндоус «Панель управления» — «Администрирование» — «Источники данных ODBC (64-разрядная версия)». Создай DSN и в созданном DSN ты сможешь протестировать соединение с Firebird.
52 — 09.03.21 — 17:05
(50) Черным по белому там написано не про права, а про логин/пароль.
53 — 09.03.21 — 17:20
(48) «Упрямство — первый признак тупости» (с) Глеб Жеглов, «Место встречи изменить нельзя», по-моему 3-я серия.
54 — 09.03.21 — 17:32
(52) Ну как бы нет имени и пароля — нет прав
55 — 09.03.21 — 17:37
(0) Лично я использую прокладку на Golang для работы с внешними БД из 1С
Ибо внешние источники данных слегка задолбали, на сервере часто прав нету — злобные админы
56 — 09.03.21 — 17:38
(55)+ Если надо то могу сваять и выложить для Firebird
57 — 09.03.21 — 17:39
(56)+ https://github.com/nakagami/firebirdsql
суть обычный exe (или бинарник под линукс) который запускаешь с параметрами, передав ему параметры подключения, текст запроса sql и имя файла куда писать результат
и все в файле результат или в csv или в json
58 — 09.03.21 — 17:47
я тоже недавно парился с этой проблемой
Смотри. у меня тоже сервер 64 бит.
на клиенте ставлю 32 бит.
Драйвер да.. 32 битный. Firebird_ODBC_2.0.5.156_Win32.exe или gds32.dll
В моем случае работает только на клиенте.
Процедуру подключения, использование драйвера пишу на #клиенте
на всякий случай кидаю тебе свой 100% рабочий код
СКУД система у меня «Тайм контрол»
&НаКлиенте
Процедура Рефф_ЗаполнитьTimeControl(Команда)
Если объект.Табель.Количество()>=0 тогда
Если Вопрос(«Очистить табличную часть?»,РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да тогда
объект.Табель.Очистить();
Конецесли;
Конецесли;
FBDBAddr = «192.168.2.5/3053:C:Program Files (x86)TimeControlBASEOKO.FDB»;
//где 192.168.2.5/3053 — адрес удаленного сервера с софтиной time Control
//C:Program Files (x86)TimeControlBASEOKO.FDB» — путь базе на удаленном сервере (это не обязательно локальный путь!)
//FBDBAddr = «192.168.2.5/3053″;//:C:Program Files (x86)TimeControlBASEOKO.FDB»;
FBUserName = «MEGA»;
FBUserPass= «STMEGA21»;
ConnectionБД =Новый COMОбъект(«ADODB.Connection»);
ConnectionБД.ConnectionString=»driver=Firebird/InterBase(r) driver;
//|Dialect=3;
|CHARSET=NONE;
|Uid=MEGA;
|Pwd=STMEGA21;
|Dbname=»+СокрЛП(FBDBAddr);
ConnectionБД.ConnectionTimeOut=15; // и хватит
ConnectionБД.CursorLocation=3;
Попытка
ConnectionБД.Open(ConnectionБД.ConnectionString);
//Сообщить(«Соединение успешно установлено!»);
Исключение
Сообщить(«Ошибка при установке соединения: «+ОписаниеОшибки());
мСоединение=Неопределено;
возврат;
КонецПопытки;
//
//SELECT U.FULLNAME, U.TABNUM, U.DEVICE_UID, G.WORKDATE, G.FACT_MIN_WORK FROM GLOBAL_WORK_BY_DAY(:BDATE, :FDATE,-1,-1,»,»,0,’0:00′,’0:00′,0,1,0) G LEFT JOIN USERS U ON (G.UID=U.UID) ORDER BY U.FULLNAME, G.WORKDATE
//Входные параметры:
//BDATE — начало периода
//FDATE — окончание периода
//
//Выходные поля:
//DEVICE_UID — код сотрудника на устройстве
//TABNUM — табельный номер
//FULLNAME- ФИО
//WORKDATE — дата
//FACT_MIN_WORK — отработанное время в минутах
//BDATE =»‘01.11.2020′»;
//FDATE =»‘30.11.2020′»;
BDATE = «‘» + Формат( НачалоМесяца(объект.НачалоПериода) , «ДФ=dd.MM.yyyy» )+ «‘»;
FDATE = «‘» + Формат( КонецМесяца(объект.НачалоПериода ) , «ДФ=dd.MM.yyyy» )+ «‘»;
RS = Новый COMОбъект(«ADODB.Recordset»);
RS.ActiveConnection = ConnectionБД;
RS.CursorType = 1;
RS.LockType = 3;
//Str = «SELECT U.FULLNAME, U.TABNUM, U.DEVICE_UID, G.WORKDATE, G.FACT_MIN_WORK FROM GLOBAL_WORK_BY_DAY(:BDATE, :FDATE,-1,-1,»,»,0,’0:00′,’0:00′,0,1,0) G LEFT JOIN USERS U ON (G.UID=U.UID) ORDER BY U.FULLNAME, G.WORKDATE»;
Str = «SELECT U.FULLNAME, U.TABNUM, U.DEVICE_UID, G.WORKDATE, G.FACT_MIN_WORK FROM GLOBAL_WORK_BY_DAY(«+BDATE+», «+FDATE+»,-1,-1,»,»,0,’0:00′,’0:00′,0,1,0) G LEFT JOIN USERS U ON (G.UID=U.UID) ORDER BY U.FULLNAME, G.WORKDATE»;
//Str = «SELECT U.FULLNAME, U.TABNUM, U.DEVICE_UID, G.WORKDATE, G.FACT_MIN_WORK FROM GLOBAL_WORK_BY_DAY(‘01.11.2020′,’30.11.2020′ ,-1,-1,»,»,0,’0:00′,’0:00’,0,1,0) G LEFT JOIN USERS U ON (G.UID=U.UID) ORDER BY U.FULLNAME, G.WORKDATE»;
попытка
RS.Open(Str, ConnectionБД);
//Сообщить («Запрос — ОК»);
исключение
Сообщить («Проблемы с выполнением запроса к FireBird»);
возврат;
КонецПопытки;
ТаблицаТаймКонтрол.Очистить();
Пока RS.EOF() = 0 Цикл
НовСтрТК = ТаблицаТаймКонтрол.Добавить();
НовСтрТК.ФИО =RS.Fields(«FULLNAME»).Value;
НовСтрТК.Дата = RS.Fields(«WORKDATE»).Value;
НовСтрТК.КоличествоМинут = RS.Fields(«FACT_MIN_WORK»).Value;
НовСтрТК.КоличествоЧасов = НовСтрТК.КоличествоМинут / 60;
НовСтрТК.НомерДня = День( НовСтрТК.дата);
RS.MoveNext();
КонецЦикла;
59 — 10.03.21 — 18:47
(49) >У меня вот работает сервер на 32 и подключаюсь я 64 битным клиентом.
Тогда объясни как может быть такое — если через COMОбъект(«ADODB.Connection») через клиента все работает, а при использовании ПараметрыСоединенияВнешнегоИсточникаДанных через сервер с той же строкой подключения выдает
Ошибка при вызове метода контекста (УстановитьСоединение): Ошибка ODBC. SQLSTATE: 08004
Номер ошибки: -902
Описание: [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
я подчеркиваю — С ТОЙ ЖЕ СТРОКОЙ ПОДКЛЮЧЕНИЯ.
60 — 10.03.21 — 18:48
(50) >С правами там что то. Написано же черным по белому.
Строка подключения через клиент и через сервер ОДИНАКОВАЯ.
Но через клиент работает а через сервер нет.
Открываем гугл по поводу ошибки [ODBC Firebird Driver]Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
и читаем
https://qna.habr.com/q/449495
«Надо было удалить Firebird для 64 bit и установить Firebird для 32 bit. Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»

61 — 10.03.21 — 18:51
(52) >Черным по белому там написано не про права, а про логин/пароль.
Я тебе еще раз говорю
Через клиент работает а через сервер нет. С ТОЙ ЖЕ СТРОКОЙ ПОДКЛЮЧЕНИЯ.
Я бы понял если бы в строке подключения через клиент было
UID=SYSDBA
PWD=masterkey
а через сервер что то другое. Но строка ОДИНАКОВАЯ.
62 — 12.03.21 — 10:44
(60) «Надо было удалить Firebird для 64 bit и установить Firebird для 32 bit. Оказывается файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit.»
Так это написал такой же специалист как и ты. На самом деле, переустановив Firebird, он просто снес настройки и поставил новые, по умолчанию.
63 — 09.04.21 — 23:39
(58) Спасибо за помощь.
Я сделал на мой взгляд намного удобной и проще. Подключил базу через Внешние источники данных, прописал таблицы. Далее с помощью 1С-ных запросов получаю данные, заполняю ТЗ и подаю на вход СКД.
64 — 09.04.21 — 23:42
(62) «Так это написал такой же специалист как и ты»
А ты что телепат что можешь определять квалификацию другого специалиста не видя и не зная что он делал ? Только не надо мне заливать что ты сам всегда со всем разбираешься и никогда не спрашиваешь ни у кого как это сделать. Так не бывает.
65 — 10.04.21 — 07:35
(64) «никогда не спрашиваешь»
Так ты спрашиваешь и не слушаешь, что тебе говорят. Нафиг спрашивать тогда.
Специалист ты конечно же хороший, только любой программист усомнится в утверждении, что «файл базы данных созданный в Firebird 32 bit, не открывается в Firebird 64 bit». А ты сходу веришь какому то школьнику, который написал это где то на заборе.
ДедМорроз
66 — 10.04.21 — 17:54
На самом деле,там не только от битности зависит,но и от версии — файл,созданный одной версией сервера,на другой не открывается,и в ошибке как раз и пишется,что файл не той версии.
Ну и потом,для firebird есть ODBC-драйвер как 32 бита,так и 64 и вот битность драйвера должна совпадать с битностью приложения,а совпадение с битностью сервера не требуется.
При написании программы на заказ нередко возникают самые неожиданные сложности и проблемы. Причем возникают там, где их совсем не ждешь. И иногда с решением таких проблем можно провозиться довольно долго. Если не знаешь, что где исправлять. Эта статья будет посвящена решению одной такой проблемы. В ней мы научимся решать ошибку подключения к базе Firebird, пользоваться telnet, а также открывать порты в ESET Smart Security 9.
Итак, для создания одной программы для тестов на заказ мне потребовалось установить соединение с файлом базы данных Firebird из Visual Studio C#. Не получилось, вылезает вот эта ошибка: Unable to complete network request to host «localhost».
В чем может быть дело? Необходимо проверить правильность адреса к файлу базы данных, корректность логина и пароля. Далее, надо проверить работает ли процесс fbserver.exe. Проблема также может заключаться в том, что файл поврежден, или его открывали в другой версии Firebird – так что лучше попробовать прописать путь к примеру – файлу EMPLOYEE.FDB, который располагается в каталоге Firebird. Также проверьте – какой указан тип сервера: classic, super server или embedded.
Если же все это в порядке, то стоит узнать, открыт ли порт 3050 – именно такой порт слушает сервер Firebird. Проверить его можно с помощью telnet. Для семерки telnet включается так: Пуск – Панель управления – Программы и компоненты – Включение или отключение компонентов Windows – ставим галочки в нужных местах и перезагружаем компьютер.

После перезагрузки запускаем командную строку (cmd.exe) и вводим в неё команду:
telnet localhost 3050
Если порт 3050 открыт, то у вас на экране просто останется мигающий курсор – приглашение. А вот в случае проблем с подключением может выйти примерно следующая ошибка:
Подключение к localhost…Не удалось открыть подключение к этому узлу на порт 3050: Сбой подключения
Это значит, что порт у нас закрыт. Значит, необходимо прописать правило в вашем брадмаузере и файерволе антивируса, чтобы открыть его. Обращаю ваше внимание, что просто отключение файервола может не помочь – в некоторых случаях необходимо явно прописать разрешение для порта на входящие и исходящие соединения. Проделаем эту операцию на примере ESET Smart Security 9.
В главном окне антивируса последовательно выбираем: Настройка – Защита сети – Персональный файервол – Конфигурировать – Правила – Изменить – Добавить. Вкладку «Общие» заполняем так:

А во вкладке «Локальные» просто прописываем порт 3050 – остальные настройки и поля не трогаем. Вот и все: теперь у нас должно заработать подключение к базе на нашем компьютере.
Если у вас возникли проблемы с подключением Firebird или требуется написать программу на си шарп, которая использует подключение к данной БД, то вы можете написать мне на почту up777up@yandex.ru – за небольшую плату вам будет оказана квалифицированная помощь программиста. У меня большой опыт работы с самыми разными задачами по программированию, в том числе для дипломов, курсовых и лабораторных работ.

Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
статьи IT, си шарп, базы данных, Firebird, нод 32
Я только что установил Firebird для Win64 и пытался подключиться к базе данных сотрудников, которая поставляется с предустановленным ISQL.
Следуя инструкциям официального QuickStart от Firebird Документация Я открыл утилиту ISQL и ввел:
connect localhost:employee user sysdba password masterkey;
В результате я получил:
Statement failed, SQLSTATE = 28000
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

Самое странное, что если я перейду к самому образцу базы данных сотрудников и введу оттуда команду isql, я смогу успешно подключиться. 
2 ответа
Лучший ответ
Разница в том, что для прямого подключения к файлу базы данных пароль не требуется, он даже игнорирует пароль и просто использует предоставленного пользователя, чтобы узнать, какие привилегии применить.
Без имени хоста ISQL по умолчанию будет использовать встроенный режим Firebird, а не сервер. Для сравнения попробуйте использовать isql employee.fdb (или isql employee), он просто войдет в систему с вашим текущим именем пользователя ОС, а isql localhost:employee завершится ошибкой с сообщением «Ваше имя пользователя и пароль не определены».
Похоже, вы указали пароль, отличный от основного ключа по умолчанию, или учетная запись sysdba не была инициализирована. Я помню, что была проблема с установщиком более ранней версии Firebird 3, но я не думаю, что это должно повлиять на 3.0.2 (или, по крайней мере: у меня это сработало).
Если учетная запись SYSDBA не была инициализирована, следуйте инструкциям примечания к выпуску Firebird 3, раздел Инициализация базы данных безопасности:
Шаги инициализации
Инициализация выполняется во встроенном режиме с помощью утилиты isql . Для встроенного соединения пароль аутентификации не требуется и будет проигнорирован, если вы его предоставите. Встроенное соединение будет работать нормально без учетных данных и «войти в систему», используя свой хост учетные данные, если вы опустите имя пользователя. Однако даже если пользователь имя не подлежит аутентификации, созданию или изменению чего-либо в существующей базе данных безопасности требует, чтобы пользователь был SYSDBA; в противном случае isql выдаст ошибку привилегий для CREATE USER запрос.
Команды управления пользователями SQL будут работать с любой открытой базой данных. Поскольку образец базы данных
employee.fdbприсутствует в вашем установка и уже псевдоним вdatabases.conf, это удобно использовать его для задачи управления пользователями.
Остановите сервер Firebird. Firebird 3 агрессивно кэширует подключения к базе данных безопасности. Наличие серверных подключений может запретить isql устанавливать встроенное соединение.
В подходящей оболочке запустите интерактивный сеанс isql , открыв базу данных сотрудников через ее псевдоним:
> isql -user sysdba employeeСоздайте пользователя SYSDBA:
SQL> create user SYSDBA password 'SomethingCryptic'; SQL> commit; SQL> quit;Для завершения инициализации снова запустите сервер Firebird. Теперь вы сможете выполнить сетевой вход в базы данных, включая базу данных безопасности, используя пароль, который вы назначили SYSDBA.
Где «SomethingCryptic», должен быть ваш пароль.
Если был создан пользователь SYSDBA, вам нужно будет изменить его пароль, если вы больше не помните, что вы установили. Выполните те же действия, но на шаге 3 выполните:
SQL> alter user SYSDBA set password '<new password>';
SQL> commit;
SQL> quit;
Если это приводит к ошибке «запись не найдена для пользователя: SYSDBA» , убедитесь, что вы действительно подключены как SYSDBA, в противном случае повторите исходный шаг 3. Отсутствие прав администратора будет вести себя так, как если бы пользователь этого не сделал. t существует, поэтому ошибка будет такой же, если пользователь действительно не существует или если вы подключены к непривилегированному пользователю.
3
Mark Rotteveel
31 Дек 2017 в 09:37
ПОДКЛЮЧИТЕ «сотрудник» пользователь «SYSDBA» пароль «мастер-ключ»;
Убедитесь, что в вашем alias.conf есть что-то вроде этого: employee = C: /examplepath/employee.fdb убедитесь, что службы firebird включены
1
Ulises Sánchez
1 Янв 2018 в 17:26
1. С момента создания базы новой, могут быть сложности создания в ID триггеров и генератора, будет вылетать ошибки с этим CREATE SEQUENCE GEN_….
Решение: Просто создать всю работу с подключением в IB Expert не по пути к файлу а по localhost как удаленно соединяемся
2. Копируем что надо gds32.dll, qtintf70.dll….
3. Вылетает такая ошибка в программе unsuccessful execution caused by an unavailable resource . Решение в FIB соединение прописать примерно так localhost:c:dirdata.gdb добавив localhost , так как в Delphi показывает ОК, а при запуске описанная ошибка.
4. Может ошибка типа отклонения соединения с хостом(базой ). где вообще не ставился никогда драйвера сервера firebird как раз на localhost ошибка с fbembed.dll.
Иной вариант для компов где вообще нет ничего firebird, в Delphi вместо gds32 прописываем fbembed.dll (в pFIBDatabase1), качаем
http://www.ibase.ru/firebird.htm#drv (Firebird 2.0.5 — embedded) Который я скачал (скачать Firebird-2.0.5.13206-2_embed.zip в хранилище сайта ), ложим туда прогу и работает
где то так…
MainPath2:=ExtractFilePath(Application.ExeName);
MainPath2:=»+MainPath2+’IPHOST.GDB’;
pFIBDatabase1.LibraryName:=’fbembed.dll’;
pFIBDatabase1.DBName:=MainPath2;
pFIBDatabase1.Open;
ipSDS.Active:=true;
Ниже из форму по этому
1.Одна из самых часто встречаемых:
«Can’t format message 13:96 — message file m:myfirebird.msg not found.
Unavailable database.»
Вообще, здесь 2 ошибки:
«Can’t format message 13:96 — message file m:myfirebird.msg not found.» — говорит о том, что не найден файл «firebird.msg». Самая безобидная, влияет на расшифровку, что именно произошло.
«Unavailable database» — обычно возникает, если не может найти SQL сервер.
За подключение к серверам баз данных отвечают файлы:
— fbclient.dll или gds32.dll -предназначен для подключения в многопользовательском варианте к серверам баз данных в сети или локальном компьютере;
— fbembed.dll -предназначен для подключения монопольно к базам данных, на локальном компьютере;
Решение проблемы:
проверьте, какие файлы находятся рядом с программой:
— если файл fbclient.dll или gds32.dll, то должен быть установлен сервер баз данных; этот файл имеет наивысший приоритет для программы; по этой причине, при всем желании вы не сможете подключиться если не стоит сервер баз данных.
— если файл fbembed.dll, то есть возможность подключения без установки сервера баз данных, но тогда должны отсутствовать фалы fbclient.dll или gds32.dll, как говорилось выше, они имеют приоритет;