Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SET ROLE в Делфи (DOA, Oracle) [D5]


sashag ©   (2005-02-10 11:40:00) 

Как сказать SET ROLE ... из приложения Делфи (БД Oracle 9i, компоненты доступа к базе - DOA)?
 Пишу следующее:
 var TempQuery: TOracleQuery;  
 ..........
 TempQuery.Create(...);
 with TempQuery do try
   Session:= ......;
   SQL.Text:= 'SET ROLE bsa';
   Execute;
 finally
   Free;
 end;


 Получаю ошибку:
ORA-00900: invalid SQL statement

В хелпе сказано:
TOracleQuery can execute any SQL statement:

- Data Manipulation Language (select, update, insert, etc.)
- Data Definition Language (create table, create procedure, grant role, etc.)
- Transaction Control (commit, rollback, savepoint, etc.)
- Session Control (alter session, set role )
- System Control (alter system)

Может, я чего-то недопонимаю?


Sashag   (2005-02-10 13:07:00) [1]

>> Reindeer Moss Eater
Пробовал, естественно, и так... Не помогло


Reindeer Moss Eater   (2005-02-10 12:46:00) [2]

Вполне возможно, что стейтмент надо просто оформить в виде pl/sql блока:
begin
set role .....
end


Sashag   (2005-02-10 12:43:00) [3]

>> roottim
регистр изменял, ему все равно. Не понмает и все.


Sashag   (2005-02-10 12:41:00) [4]

>> Reindeer Moss Eater
Большое спасибо. Все получилось.


roottim   (2005-02-10 12:26:00) [5]

ODAC это схамал.. и нечего..
хотя plsql-developer тоже, а он именно DOA и ест.
может регистр ?


Reindeer Moss Eater   (2005-02-10 12:10:00) [6]

Ну тогда

dbms_session.set_role(role_cmd => '');


Sashag   (2005-02-10 12:05:00) [7]

Независимо от наличия в конце знака ; (точка с запятой) получаю
ORA-00900: invalid SQL statement


Reindeer Moss Eater   (2005-02-10 12:01:00) [8]

SET ROLE bsa; <> 'SET ROLE bsa';


sashag   (2005-02-10 11:59:00) [9]

Выполнив команду SET ROLE bsa; в SQL Navigator, я получаю дополнительные привилегии, и ошибка не возникает. Вызов этой же команды из Делфи приводит к ошибке.


Sergey13   (2005-02-10 11:47:00) [10]

А зачем так делать? Юзер заходит со своим логином и ему доступно все согласно имеющимся у него ролям.


Reindeer Moss Eater   (2005-02-10 11:46:00) [11]

http://www.mid.main.vsu.ru/docs/oracle10/server.101/b10759/statements_10004.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо