Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Источник данных при соединении Oracle и Delphi через ADO...  [new]
Mishenka
Member

Откуда:
Сообщений: 12
Никак не получается настроить соединение Delphi с Oracle через ADO.
В ADOConnection выбираю Oracle Provider for OLE DB. Далее не понятно что вводить в пункте источник данных. Погуглил и нашёл, что вроде как надо ввести "orcl". Но при проверке подключения выводится ошибка:

"Не выполнена проверка подключения из-за ошибки при инициализации поставщика. ORA-12154: TNS:could not resolve service name".

Откуда тогда взять источник данных в таком случае?
17 июл 09, 09:17    [7427264]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
hoarfrost
Member

Откуда: Волгоград
Сообщений: 438
Mishenka
Никак не получается настроить соединение Delphi с Oracle через ADO.
В ADOConnection выбираю Oracle Provider for OLE DB. Далее не понятно что вводить в пункте источник данных. Погуглил и нашёл, что вроде как надо ввести "orcl". Но при проверке подключения выводится ошибка:

"Не выполнена проверка подключения из-за ошибки при инициализации поставщика. ORA-12154: TNS:could not resolve service name".

Откуда тогда взять источник данных в таком случае?

Из настроек клиента Oracle, установленного на локальную машину. Можно просто найти файл tnsnames.ora и посмотреть там.
17 июл 09, 09:24    [7427277]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5369
http://www.rusdoc.ru/articles/16156/
17 июл 09, 09:26    [7427287]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
Mishenka
Member

Откуда:
Сообщений: 12
Я эту статью уже читал по десяти разным ссылкам. Там везде указано, что надо вводить "orcl", а у меня это не проходит.

А какой параметр из этого файла надо брать? Я пробовал и SERVICE_NAME и HOST и даже SERVER, но везде результат одинаковый.
17 июл 09, 09:40    [7427326]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
stax..
Guest
Mishenka,

Найдите файл (файлы) tnsnames.ora
и выложите сюда

Sql*Plus конектітся к базе?

....
stax
17 июл 09, 09:49    [7427367]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
Mishenka
Member

Откуда:
Сообщений: 12
Всего нашёл три файла tnsnames.ora:
C:\oracle\ora81\hs\admin\tnsnames.ora
C:\oracle\ora81\network\ADMIN\SAMPLE\tnsnames.ora
C:\oracle\ora81\network\ADMIN\tnsnames.ora

Я так понимаю, тот что в каталоге Sample это шаблон, поэтому его нет смысла выкладывать.

Файл C:\oracle\ora81\hs\admin\tnsnames.ora :

# This is a sample tnsnames.ora that contains the NET8 parameters that are
# needed to connect to an ODBC Agent

#hsodbc  = (DESCRIPTION=
#            (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
#            (CONNECT_DATA=(SID=hsodbc))
#            (HS=)
#          ) 

Файл C:\oracle\ora81\network\ADMIN\tnsnames.ora :

# TNSNAMES.ORA Network Configuration File: C:\oracle\ora81\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

PROBA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 012-5-13)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = proba.com)
    )
  )

INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 012-5-13)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = proba.com)
      (PRESENTATION = http://admin)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

SQL Plus коннектится без проблем по HOST string "PROBA".
17 июл 09, 10:09    [7427476]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6919
PROBA
17 июл 09, 10:54    [7427806]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
Mishenka
Member

Откуда:
Сообщений: 12
Пробовал я вводить "Proba". Бестолку.
17 июл 09, 11:13    [7427946]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
stax..
Guest
Mishenka
Пробовал я вводить "Proba". Бестолку.

странно

Гляньте еще
SQLNET.ORA

.....
stax
17 июл 09, 12:09    [7428394]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
Mishenka
Member

Откуда:
Сообщений: 12
Конечно странно.

Файл SQLNET.ORA :
# SQLNET.ORA Network Configuration File: C:\oracle\ora81\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

Тут похоже ничего интересного.
17 июл 09, 12:35    [7428572]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
stax..
Guest
Mishenka
Конечно странно.

Файл SQLNET.ORA :
# SQLNET.ORA Network Configuration File: C:\oracle\ora81\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

Тут похоже ничего интересного.

а если удалить/закоментировать AUTHENTICATION_SERVICES
и в DIRECTORY_PATH= (TNSNAMES)

.....
stax
17 июл 09, 16:10    [7430132]     Ответить | Цитировать Сообщить модератору
 Re: Источник данных при соединении Oracle и Delphi через ADO...  [new]
schi
Member

Откуда: Москва
Сообщений: 2601
Mishenka
Пробовал я вводить "Proba". Бестолку.


Тогда Oracle не причем

object ADOConnection: TADOConnection
Connected = True
ConnectionString =
'Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=f' +
'oo;Data Source=ora9'
Provider = 'OraOLEDB.Oracle.1'
end

соответственно, в tnsnames.ora (который в %ORACLE_HOME%\Network\Admin) для ora9 есть элемент
17 июл 09, 16:58    [7430462]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить