Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Помогите подключиться к Oracle XE


Автор: Cyclone 8.5.2008, 11:58
Привет.
Не удаётся подключиться к безе локальной Oracle XE из программы на Delphi 7.

По шагам:
  • 1) Скачал Oracle 10g Express Edition, установил.
  • 2) Через homepage создал пользователя Admin со всеми правами и таблицу Услуги.
    Через PL/SQL Developer к базе XE нормально подключаюсь и могу работать.
  • 3) Регистрирую источник данных:
    Пуск - Администрирование - Источники данных (ODBC) - Пользовательский DSN - [ Добавить... ]
    Data Source Name: NEWSource
    TNS Servise Name: XE
    User ID: Admin
    Test connection проходит успешно.

В Delphi:
а) Через BDE
  • 1) Добавляю Query на форму.
    DataBase Name: NEWSource
    SQL: SELECT * FROM Услуги
    Active: True (ввожу login и пароль)
  • 2) Добавляю DataSource на форму.
    DataSet: Query1
  • 3) Связываю с DataSet1 таблицу DBGrid. В таблице появляются столбцы и значения.
Запуск приложения выдаёт ошибку:
http://ipicture.ru/Gallery/Viewfull/1729509.html

б) Через ADO
  • 1) Добавляю ADOConnection на форму.
    ConnectionString - [ Bulid... ]
    Поставщик данных: Microsoft OLE DB Provider for ODBC Drivers
    Подключение: NEWSource, Пользователь: Admin, Пароль.
    Првоерка подключения проходит успешно.
  • 2) Добавляю ADOQuery на форму
    Connection: ADOConnection1
    SQL: SELECT * FROM Услуги
    Active: True (ввожу login и пароль)
  • 3) Добавляю DataSource на форму.
    DataSet: ADOQuery1
  • 4) Связываю с DataSet1 таблицу DBGrid. В таблице появляются столбцы и значения.
Запуск приложения выдаёт ошибку:
http://ipicture.ru/Gallery/Viewfull/1729693.html

Что я делаю не так?..

Автор: Vas 8.5.2008, 12:46
Читаем ORA-12154 в файле tnsnames.ora нет описанного псевдонима БД к которому вы обращаетесь. Если у Вас БД называется NewSource то и в файле tnsnames.ora должно быть описано что то типа такого: 
Код

NewSource =
  (DESCRIPTION =
   (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.x.x.x)(PORT=1521)))
   (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE))
  )


Добавлено через 3 минуты и 22 секунды
http://www.connectionstrings.com/ можно посмотреть как правильно писать Connection string для разных БД. 
И кстати при подключении к БД черех PL/SQL developer в поле БД что пишете (это и будет именем БД)? 

Автор: Cyclone 9.5.2008, 12:29
Поставил Oracle 10g Standard Edition.
Пытаюсь присоединиться из Delphi 7 с помощью DOAC.

Один раз приложение запустилось нормльно, на второй вылетела та же ошибка 12154. : (
В файле tnsnames.ora прописан псевдоним базы, с которой я соединяюсь (и который ввожу при старте PL/SQL Dev'а).

Цитата

oraclexe\network\admin\tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.37.225.223)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

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



В чём ещё может быть проблема?
Подскажите, пожалуйста, третий день бьюсь.

Автор: Vas 9.5.2008, 12:34
Может компоненты доступа ODAC? Если да то выложи проект я попробую посмотреть что не так в нем.

Автор: Cyclone 9.5.2008, 13:10
Direct Oracle Access 4.0.7.1.

Да проекта никакого нет... На форме:
OracleSession с выставленными полями LogonDatabase: Orcl, LogonPassword, LogonUsername, Connected: True;
OracleDataSet - Session: OracleSession1, Active: True;
DataSource - DataSet: OracleDataSet1
dxDBGrid - DataSource: DataSource1 и добавленными столбцами.

Хотя бы это пытаюсть запустить. 12154...

Автор: Cyclone 9.5.2008, 14:45
Хм... что-то я подозреваю свой Agnitum Outpost Firwall.
Кажется, он блочит клиента, даже не смотря на моё разрешение...  smile 

Автор: kostyan1 12.5.2008, 09:56
Господа, у меня очень близкая тема. Пытаюсь Подключиться к Oracle XE из дельфи 6. По совету Vas пробую разные строки коннекции с разными провайдерами. У меня на форме простейшая цепочка: ADOConnection1-ADOTable1-DataSource1. Пароль указываю всегда в строке коннекции, но при завпуске приложения мне настойчиво выводится приглашение ввести пароль. Подскажите как мне избавиться от вывода этого дурацкого диалога "Database Login"???

Автор: Vas 12.5.2008, 10:03
В настройках подключения кажется есть крыжик "запомнить пароль" попробуй его отметить и может на последней вкладке не помню как называется что-то типа параметры подключения попробовать вбить пароль администратора БД. 
ИМХО запускать приложение БД без пароля не есть гуд, все таки роли у каждого пользователя могут быть разные + давать пользователю возможность самому выбирать БД из списка (мало ли сколько у вас серваков будет) 

Автор: Данкинг 12.5.2008, 10:29
Цитата(kostyan1 @ 12.5.2008,  10:56)
У меня на форме простейшая цепочка: ADOConnection1-ADOTable1-DataSource1. 

Юзай не ADO, а Direct Oracle Access ! smile 

Автор: Vas 12.5.2008, 10:48
Цитата(Данкинг @  12.5.2008,  10:29 Найти цитируемый пост)
Юзай не ADO, а Direct Oracle Access ! 

Или ODAC, но и те и другие платные :(

Автор: Данкинг 12.5.2008, 11:06
Цитата(Vas @ 12.5.2008,  11:48)
Или ODAC, но и те и другие платные :(

Не знаю, у меня DOA бесплатный... Впрочем, мне дали наши программеры, может быть, они и покупали, но никакой регистрации не требуется, кряков тоже нет.

Автор: Vas 12.5.2008, 12:45
Цитата(Данкинг @  12.5.2008,  11:06 Найти цитируемый пост)
Не знаю, у меня DOA бесплатный... Впрочем, мне дали наши программеры, может быть, они и покупали, но никакой регистрации не требуется, кряков тоже нет.

http://www.allroundautomations.nl/doaordering.html
Цитата

Direct Oracle Access Standard license: 129.-

Direct Oracle Access Object license: 179.-

Oracle Monitor Pro (per license): +50.-

Annual Service Contract (per license): +50.-

Additional Sourcecode: +299.-

Автор: Martisha 30.10.2008, 10:43
Люди!!! помогите через ADO подключиться к Oraсle!!!

Автор: Vas 31.10.2008, 07:45
Что не получается то? 
Смотрели http://www.connectionstrings.com/?

Автор: Martisha 31.10.2008, 08:37
Цитата(Vas @  31.10.2008,  07:45 Найти цитируемый пост)
Что не получается то?

наверное мне нужно что нибудь почитать..совсем не представляю с чего начать  smile 
Цитата(Vas @  31.10.2008,  07:45 Найти цитируемый пост)
Смотрели здесь?

смотрела) пока не понимаю что с этим делать 

Автор: Vas 31.10.2008, 09:36
Цитата(Martisha @  31.10.2008,  08:37 Найти цитируемый пост)
смотрела) пока не понимаю что с этим делать  

Там есть готовые строки для подключения к БД ORACLE, смотрите OLE DB и вставляйте в ADOConnection->ConnectionString ну и собсно соединение проверяйте. А sqlplusw из оракла коннектится к Вашей БД?

Автор: Martisha 31.10.2008, 11:09
Vas, начала делать, но у меня администратор BDE не работает оказывается, нет связи с бд, от туда все трудности..ну это уж не мои проблемы, так что работа в этом направлении временно прекращается)
но все равно спасибо за помощь  smile 

Автор: Vas 31.10.2008, 11:16
Цитата(Martisha @  30.10.2008,  10:43 Найти цитируемый пост)
Люди!!! помогите через ADO подключиться к Oraсle!!! 

При чем тут BDE? 

Автор: Martisha 31.10.2008, 15:35
оказалось не при чем( это прост меня тут запутали..
Цитата(Vas @  31.10.2008,  09:36 Найти цитируемый пост)
sqlplusw из оракла коннектится к Вашей БД

да

Автор: Martisha 1.11.2008, 10:52
сегодня нашла ссылку http://www.compdoc.ru/prog/pascal/database_without_bde/, может кому полезно будет)

Автор: mrbrooks 1.11.2008, 10:55
Martisha, почему всетаки не ODAC - вещь дельная.

Автор: Vas 1.11.2008, 11:18
Цитата(mrbrooks @  1.11.2008,  10:55 Найти цитируемый пост)
ODAC - вещь дельная.

Дельная, но платная smile 

Автор: Martisha 1.11.2008, 11:24
Цитата(Vas @  1.11.2008,  11:18 Найти цитируемый пост)
Дельная, но платная 

вотвот 

Автор: mrbrooks 1.11.2008, 11:27
Vas, 
Martisha, 
дык если по работе пусть контора купит, а так...  smile  сами понимаете  smile 

Автор: Martisha 1.11.2008, 13:22
Цитата(mrbrooks @  1.11.2008,  11:27 Найти цитируемый пост)
дык если по работе пусть контора купит

ага, купят они!!!  smile  жлобы они, на всем экономят

Автор: Martisha 10.11.2008, 16:20
уф, получилось)) нужно было только в книжку заглянуть , которая под рукой валялась... smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)