Ошибка odbc sqlstate 08004

4 Answers

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

PV8's user avatar

PV8PV8

5,8527 gold badges43 silver badges88 bronze badges

1

  • This worked for me. I don’t really need it in the TNS names file. I just need to be able to connect via DSN.

    Oct 19, 2020 at 17:46

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

rajesh's user avatar

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

Peter E's user avatar

1

  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.

    Feb 19 at 6:23

Yes
This is the answer for Error in ODBC using TNS provided above:
[oracle odbc driver sqlstate 08004 ora 12154 tns]
It is working on Oracle 19 for 32 bit also on Windows 11:
See the image attached.

Original answer/message here:
https://stackoverflow.com/a/62892257/22208353
Data Source Name Test123xyz
TNS Service Name 10.1.1.105:1521/ALXTEST

enter image description here

answered Jul 11 at 8:59

Ionescu Bogdan's user avatar

Не подключается в базе Firebird. Через консоль подключается. ☑ 0

ЧессМастер

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)\ENT\Server\DB\CBASE.FDB;» +  // Исправьте на свой IP, порт и путь к базе данных !

     «UID=SYSDBA;» +                                     // Исправьте на свое имя пользователя !

     «PWD=masterkey;» +                                  // Исправьте на правильный пароль !

     «CHARSET=WIN1251;» +                                // Исправьте на свою кодировку подключения !!!

     «C:\Program Files (x86)\Firebird\Firebird_2_1\bin\fbclient.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

acht

03.03.21

20:47

64×32

5

Кирпич

03.03.21

20:48

мож «CLIENT=C:\Program Files (x86)\Firebird\Firebird_2_1\bin\fbclient.dll»;

6

vovastar

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

Gimalaj

04.03.21

12:29

(8) >> Я правильно понимаю что для того чтобы подключить внешний источник данных надо…

Да, все верно.

11

Gimalaj

04.03.21

12:32

А вообще, никогда не понимал людей, пишущих: ConnectionString = «DRIVER=такой-то, DBNAME=такая-то, UID=такой-то и т.д.».

Намного проще создать в системе DSN, а в коде написать «dsn=такой-то».

12

ДенисЧ

04.03.21

12:35

(11) Хорошо, что мне не приходилось править твой такой код…

13

Gimalaj

04.03.21

12:36

(12) ОК, аргументируй. Что не так?

14

ДенисЧ

04.03.21

12:38

(13) Лишние движения телом.

15

ДенисЧ

04.03.21

12:39

И переносимость. Забудешь ты притащить в прод свой дсн и ага.

16

Gimalaj

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

Fram

05.03.21

00:33

(18) может все таки в разные базы ломишься?.. если что диск С на клиенте не всегда равно диск С на сервере

20

ЧессМастер

05.03.21

11:37

(19) >может все таки в разные базы ломишься

Да нет в одну и ту же.

DBNAME=KD-SKUD-01:C:\Program Files (x86)\ENT\Server\DB\CBASE.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 непосредственно под HKLM\Software\ODBC

Что он конкретно менял ?

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

Gimalaj

09.03.21

15:45

(31) Значит, что-то у тебя не так. У меня точно такая же ситуация: база изначально работала с х32-приложением, потом понадобился доступ к ней из 1С. В настоящее время мы работаем с этой базой данных как из 32-разрядного дельфёвого приложения, так и из 64-разрядного сервера 1С.

37

Gimalaj

09.03.21

15:47

Создай на сервере, где развернут сервер 1С источник DSN и протестируй оттуда.

38

Кирпич

09.03.21

15:49

(37) Да автор уже, наверное, доложил начальству о фатальной ошибке в Fierbird и успокоился :)

39

Кирпич

09.03.21

15:50

уж неделя прошла

40

Gimalaj

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)\ENT\Server\DB\CBASE.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

Gimalaj

09.03.21

17:04

(47) Речь в (37) идет НЕ про внешние источники данных.Речь там идет вообще не про 1С.

Открой в Виндоус «Панель управления» — «Администрирование» — «Источники данных ODBC (64-разрядная версия)». Создай DSN и в созданном DSN ты сможешь протестировать соединение с Firebird.

52

Gimalaj

09.03.21

17:05

(50) Черным по белому там написано не про права, а про логин/пароль.

53

Gimalaj

09.03.21

17:20

(48) «Упрямство — первый признак тупости» (с) Глеб Жеглов, «Место встречи изменить нельзя», по-моему 3-я серия.

54

Кирпич

09.03.21

17:32

(52) Ну как бы нет имени и пароля — нет прав

55

Garykom

09.03.21

17:37

(0) Лично я использую прокладку на Golang для работы с внешними БД из 1С

Ибо внешние источники данных слегка задолбали, на сервере часто прав нету — злобные админы

56

Garykom

09.03.21

17:38

(55)+ Если надо то могу сваять и выложить для Firebird

57

Garykom

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)\TimeControl\BASE\OKO.FDB»;    

    
    //где 192.168.2.5/3053 — адрес удаленного сервера с софтиной time Control

    //C:\Program Files (x86)\TimeControl\BASE\OKO.FDB» — путь базе на удаленном сервере (это не обязательно локальный путь!)

    
    
    //FBDBAddr  = «192.168.2.5/3053″;//:C:\Program Files (x86)\TimeControl\BASE\OKO.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 и вот битность драйвера должна совпадать с битностью приложения,а совпадение с битностью сервера не требуется.

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_ 2\network\admin (ORACLE_ Network under home (admin)

Restart or log off after adding

Similar Posts:

Solution 1:
One helpful trick is to specify the necessary information when filling, as this can ensure it works.
Solution 2:
To check if you can connect to the destination, follow these steps: click on the start icon, type «cmd» in the text box, select cmd.exe, type «tnsping», and press enter.
Solution 1:
The error is related to an incorrect service name.
Solution 3:
For those facing the «identifier not resolved issue,» please closely examine the tnsnames.ora entry for the provided dsn, after checking the environment variables PATH, ORACLE_HOME, and TNS_ADMIN.

Unable to connect SQLState=08004 [Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified in ms odbc administrator


Solution 1:

A helpful trick I use is when filling in the blanks.

Data Source Name     Test
TNS Service Name     10.1.1.105:1521/ALXTEST

To ensure it works, make sure to specify the

hostname:port/servicename

.


Solution 2:

To initiate the process, click on the start icon and then type «cmd» in the provided text box. Locate and click on «cmd.exe» and proceed to type «tnsping» before pressing the enter key.

Verify the ability to establish a connection with the specified destination.

Unable to connect SQLState=08004, Unable to connect SQLState=08004 [Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the …

How to Fix ORACLE Error | ORA-12154 TNS could not

How to Fix ORACLE 6i Error »
ORA

12154
: TNS:could not resolve the
connect
identifier specified».0:00 Intro1:48 Error Fix#Oracle #Oracle6i #Error12154 #Fix

ORA-12154: TNS:could not resolve the connect identifier

Solution for
ORA

12154
: TNS:could not resolve the
connect
identifier specified.for oracle and sql errors, subscribe my channel.fix your problem in less than

[en] ORA-12154: TNS:could not resolve the connect

Solved the most common issue in Oracle Database: TNS could not resolve service name, TNS could not resolve the
connect
identifier specified.


Solution 1:

The service name could not be resolved: ORA-12154: TNS.

my_db=  
  (DESCRIPTION=  
    (ADDRESS=  
      (PROTOCOL=TCP)  
      (HOST=local.db)  
      (PORT=1521)  
    )  
    (CONNECT_DATA=  
      (SID=SCMPROD)  
    )  
  )

The error is related to an incorrect service name. It appears that your tnsnames.ora file does not include the service_name, but instead mentions SID. This is likely the reason for the error.

You could edit the tnsnames.ora as:

SCMPROD =
 (DESCRIPTION = 
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
   )
 (CONNECT_DATA =
   (SERVICE_NAME = SCMPROD)
 )
)

Assuming

SCMPROD

represents the service_name.


Solution 2:

From the source

The error ORA-12154 occurs when the connect identifier specified cannot be resolved into a connect descriptor using the configured naming methods. This can happen if the net service name used as the connect identifier is not found in the naming method repository, or if the repository cannot be located or reached. To resolve this issue, you need to check the configuration and ensure that the connect identifier can be resolved correctly.

  • If you are using local naming (TNSNAMES.ORA file):

  • Make sure that «TNSNAMES» is listed as one of the values of the NAMES.DIRECTORY_PATH parameter in the Oracle Net profile (SQLNET.ORA)

  • Verify that a TNSNAMES.ORA file exists and is in the proper directory and is accessible.

  • Check that the net service name used as the connect identifier exists in the TNSNAMES.ORA file.

  • Make sure there are no syntax errors anywhere in the TNSNAMES.ORA file. Look for unmatched parentheses or stray characters. Errors in a
    TNSNAMES.ORA file may make it unusable.

  • If you are using directory naming:

  • Verify that «LDAP» is listed as one of the values of the NAMES.DIRETORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).

  • Verify that the LDAP directory server is up and that it is accessible.

  • Verify that the net service name or database name used as the connect identifier is configured in the directory.

  • Verify that the default context being used is correct by specifying a fully qualified net service name or a full LDAP DN as the connect
    identifier

  • If you are using easy connect naming:

  • Verify that «EZCONNECT» is listed as one of the values of the NAMES.DIRETORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).

  • Make sure the host, port and service name specified are correct.

  • Try enclosing the connect identifier in quote marks. See the Oracle Net Services Administrators Guide or the Oracle operating system
    specific guide for more information on naming.

SQLSTATE=08004 ORA=12154 when use a 32, the 64 bit Oracle Client contents instantclient-basic-windows.x64-12.1.0.2.0.zip and instantclient-odbc-windows.x64-12.1.0.2.0.zip. I think you mixed up the 32 bit and 64 bit …

Connection to an Oracle Database


Solution 1:

After locating it, it was necessary for me to access the Environment variables and set the ORACLE_HOME path. Once this was done, the connection was established.

This post helped me find the correct path.
«»».

Thanks


Solution 2:

Ensure that your machine configuration is set to either 64 bit or 32 bit and verify that your server configuration is accurate.


Solution 3:

If you are facing the «identifier not resolved issue» and have already verified
environment variables : PATH
, ORACLE_HOME, and TNS_ADMIN, ensure that you carefully examine the tnsnames.ora entry for the specified dsn. In my case, the failure was due to incorrect indentation.

The following is the entry, properly indented:
«»».

 =
   (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ) 
    )
  )

Unable to connect to DB using sqlplus: ORA-12154, That happens when you’re trying to connect to a database whose alias isn’t contained in the TNSNAMES.ORA file. For example: SQL> connect scott/tiger@does_not_exist ERROR: ORA-12154: TNS:could not resolve the connect identifier specified Warning: You are no longer connected to ORACLE. SQL> So, …

ORA-12154 cannot connect to the database from sqlplus


Solution:

Try this.

The SQLNET.AUTHENTICATION_SERVICES parameter is set to NONE.

ORA 12154 — unable to connect from toad/SQLplus, From the source. ORA-12154: TNS:could not resolve the connect identifier specified. Cause: A connection to a database or other service was requested using a connect identifier, and the connect identifier specified could not be resolved into a connect descriptor using one of the naming methods …

Solution 1

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

Solution 2

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

Comments

  • I want to add two service names in one tnsnames.ora file and getting error
    in below 2 image in «Microsoft ODBC Driver Configuration».
    enter image description here

Recents

Понравилась статья? Поделить с друзьями:
  • Ошибка odbc sqlstate 08001 номер ошибки 101
  • Ошибка erp 23 voice
  • Ошибка odbc sqlstate 01s00
  • Ошибка od off хендай акцент
  • Ошибка odbc sqlstate 01000