Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Delphi & Oracle

523
02 марта 2009 года
serjufa
14 / / 20.05.2000
Здравствуйте!

На моей раб. станции установлена прикл. программа, использующая Oracle. ПК взходит в домен. Для возможности нестандартных выборок (не предусмотренных прикл. прогой) мне установили SQL Developer и дали полномочия (login/passw) на чтения некоторых таблиц. Ч/з SQL Developer мои запросы идут. Хочу сделать exe (Delphi7, XP SP3). К dbf я цеплялся из D7 и запросы шли, а вот как быть в случае с Oracle...

Воткнул на форму Query1 из BDE и код:
 
Код:
Query1.Active := False;
  Query1.DatabaseName := 'Oracle1'  ;
  Query1.SQL.Text := '';
  Query1.SQL.Text := 'select * from class order by cd_1';
  Query1.Active := True;

Выходит ошибка:
Project Project 1 .exe raised exception class EDBEngineError with message 'General SQL error.
ORA-01012: Вы не не вошли в систему
Alias: Oracle Г. Process stopped. Use Step or Run to continue.
Как мне быть? С чего начать
14
02 марта 2009 года
Phodopus
3.3K / / 19.06.2008
Найти описание ошибки.
Походу пароль и логин предъявить нужно.
294
14 марта 2009 года
Plisteron
982 / / 29.08.2003
Цитата: serjufa
Здравствуйте!

На моей раб. станции установлена прикл. программа, использующая Oracle. ПК взходит в домен. Для возможности нестандартных выборок (не предусмотренных прикл. прогой) мне установили SQL Developer и дали полномочия (login/passw) на чтения некоторых таблиц. Ч/з SQL Developer мои запросы идут. Хочу сделать exe (Delphi7, XP SP3). К dbf я цеплялся из D7 и запросы шли, а вот как быть в случае с Oracle...

Воткнул на форму Query1 из BDE и код:
Query1.Active := False;
Query1.DatabaseName := 'Oracle1' ;
Query1.SQL.Text := '';
Query1.SQL.Text := 'select * from class order by cd_1';
Query1.Active := True;

Выходит ошибка:
Project Project 1 .exe raised exception class EDBEngineError with message 'General SQL error.
ORA-01012: Вы не не вошли в систему
Alias: Oracle Г. Process stopped. Use Step or Run to continue.
Как мне быть? С чего начать


Пихнуть на форму компонент TDatabase, в дизайнере компонент TDatabase сделать Driver Name = ORACLE, задать какой-нибудь Database Name, создать параметры кнопкой Defaults, в параметрах правильно задать свои Server Name, User Name и Password. Можно отключить галку "Login Prompt" (тогда не будет спрашивать логин-пароль). Желательно включить галку "Keep Inactive Conection". Потом сделать Query1->DatabaseName = имя_нашей_БД (то, которое задано в Database1->DatabaseName); Database1->Connected = true;, а потом весь остальной код.
Только, IMHO, для работы с Oracle лучше использовать ODAC, т.к. потом меньше писанины.
UPDATED: ЗЫ. Сори за стрелочки и отсутствие двоеточий в операторах присвоения -- привык к C++Builder и не разумею в дельфовом синтаксисе.
UPDATED: ЗЗЫ. Предыдущий оратор прав. Вот что говорит дока:
ORA-01012 not logged on
Cause: A host language program issued an Oracle call, other than OLON or
OLOGON, without being logged on to Oracle. This can occur when a user
process attempts to access the database after the instance it is connected to
terminates, forcing the process to disconnect.
Action: Log on to Oracle, by calling OLON or OLOGON, before issuing any
Oracle calls. When the instance has been restarted, retry the action.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог