I want to add two service names in one tnsnames.ora file and getting error
in below 2 image in «Microsoft ODBC Driver Configuration».
asked Sep 11, 2016 at 8:03
4
One trick which help me is, when you fill:
Data Source Name Test
TNS Service Name 10.1.1.105:1521/ALXTEST
so you need to specify the hostname:port/servicename
, then it should work
answered Jul 14, 2020 at 9:40
PV8PV8
5,5367 gold badges41 silver badges80 bronze badges
1
click on start icon->type cmd in the text box-> you can see cmd.exe-> click on it-> type tnsping click enter.
check whether you can connect to the destination or not
answered Sep 30, 2016 at 12:32
I had this issue and on a specific version of Oracle (instant client 11.2), I added .World after the tnsname and it worked.
ALXTEST.World =
(description =
…
(service_name =ALXTEST.World
answered Feb 13 at 15:37
1
780388Apr 4 2011 — edited Apr 4 2011
Hi Experts/Gurus,
I am trying to create a new datasource using Oracle 11g driver with the details below:
Datasource Name: PeopleSoft
Description:
TNS Service Name: HR91PEN
User ID: sysadm
Password: SysAdm1n
when I click Test Connect I got this error below:
Error:
Unable to Connect
SQLState=08004
[Oracle][ODBC][Ora]ORA-12154: TNS: could not resolve the connect identifier specified
Please help.
Thanks you so much…
JP
This post has been answered by Gianluca Ancarani on Apr 4 2011
Jump to Answer
Locked due to inactivity on May 2 2011
Today, when using ODBC to connect to Oracle database, I reported such an error as “unable to connect sqlstate = 08004 Oracle ODBC ora-12154”. After checking on the Internet for a long time, I said that the powerdesign installation path has special characters, but I still reported this error after removing the spaces and brackets in my path. Simply remove powerdesign and connect directly with ODBC, but still report an error. At this time, I realize that it is not the problem of powerdesign installation path. Take a closer look at TNS service name, it is all garbled
The database version I use is Oracle 11g 64 bit server, and the 32-bit client is installed. The 64 bit ODBC TNS service name will be garbled. As shown in the picture above
solution:
add system environment variable
Variable name: TNS_ ADMIN
Variable value: C: app, administrator, product, 11.2.0, client_ 2networkadmin (ORACLE_ Network under home (admin)
Restart or log off after adding
Similar Posts:
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 и вот битность драйвера должна совпадать с битностью приложения,а совпадение с битностью сервера не требуется.
ЧессМастер
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
Сейчас выяснится, что этот код &НаСервере…
acht
4 — 03.03.21 — 20:47
64×32
Кирпич
5 — 03.03.21 — 20:48
мож «CLIENT=C:Program Files (x86)FirebirdFirebird_2_1binfbclient.dll»;
vovastar
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) Что делать — БД пропускной системы на нем крутится.
Gimalaj
10 — 04.03.21 — 12:29
(8) >> Я правильно понимаю что для того чтобы подключить внешний источник данных надо…
Да, все верно.
Gimalaj
11 — 04.03.21 — 12:32
А вообще, никогда не понимал людей, пишущих: ConnectionString = «DRIVER=такой-то, DBNAME=такая-то, UID=такой-то и т.д.».
Намного проще создать в системе DSN, а в коде написать «dsn=такой-то».
ДенисЧ
12 — 04.03.21 — 12:35
(11) Хорошо, что мне не приходилось править твой такой код…
Gimalaj
13 — 04.03.21 — 12:36
(12) ОК, аргументируй. Что не так?
ДенисЧ
14 — 04.03.21 — 12:38
(13) Лишние движения телом.
ДенисЧ
15 — 04.03.21 — 12:39
И переносимость. Забудешь ты притащить в прод свой дсн и ага.
Gimalaj
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.
При этом подключение идет под теми же данными как и с локальной машины. То есть при подключение с локальной машины подключение проходит, на сервере под этими же данными нет.
Что бросается в глаза — версия драйвера на сервере другая. Может при изменении версии драйвера поменялся синтаксис подключения ?
Fram
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.
Как может быть что под однги ми и теми же учетными данными
с клиента пускает а с сервера нет ? Это бред какой то реальный.
ЧессМастер
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 и всё будет работать.
Gimalaj
36 — 09.03.21 — 15:45
(31) Значит, что-то у тебя не так. У меня точно такая же ситуация: база изначально работала с х32-приложением, потом понадобился доступ к ней из 1С. В настоящее время мы работаем с этой базой данных как из 32-разрядного дельфёвого приложения, так и из 64-разрядного сервера 1С.
Gimalaj
37 — 09.03.21 — 15:47
Создай на сервере, где развернут сервер 1С источник DSN и протестируй оттуда.
Кирпич
38 — 09.03.21 — 15:49
(37) Да автор уже, наверное, доложил начальству о фатальной ошибке в Fierbird и успокоился
Кирпич
39 — 09.03.21 — 15:50
уж неделя прошла
Gimalaj
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
С правами там что то. Написано же черным по белому.
Gimalaj
51 — 09.03.21 — 17:04
(47) Речь в (37) идет НЕ про внешние источники данных.Речь там идет вообще не про 1С.
Открой в Виндоус «Панель управления» — «Администрирование» — «Источники данных ODBC (64-разрядная версия)». Создай DSN и в созданном DSN ты сможешь протестировать соединение с Firebird.
Gimalaj
52 — 09.03.21 — 17:05
(50) Черным по белому там написано не про права, а про логин/пароль.
Gimalaj
53 — 09.03.21 — 17:20
(48) «Упрямство — первый признак тупости» (с) Глеб Жеглов, «Место встречи изменить нельзя», по-моему 3-я серия.
Кирпич
54 — 09.03.21 — 17:32
(52) Ну как бы нет имени и пароля — нет прав
Garykom
55 — 09.03.21 — 17:37
(0) Лично я использую прокладку на Golang для работы с внешними БД из 1С
Ибо внешние источники данных слегка задолбали, на сервере часто прав нету — злобные админы
Garykom
56 — 09.03.21 — 17:38
(55)+ Если надо то могу сваять и выложить для Firebird
Garykom
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) >Черным по белому там написано не про права, а про логин/пароль.
Я тебе еще раз говорю
Через клиент работает а через сервер нет. С ТОЙ ЖЕ СТРОКОЙ ПОДКЛЮЧЕНИЯ.
Я бы понял если бы в строке подключения через клиент было
а через сервер что то другое. Но строка ОДИНАКОВАЯ.
Кирпич
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 и вот битность драйвера должна совпадать с битностью приложения,а совпадение с битностью сервера не требуется.