|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Подключение к Oracle под sysdba |
|
Delphi - [решено] Подключение к Oracle под sysdba
|
![]() Ветеран Сообщения: 637 |
Доброго времени суток!
Делюсь с вами своей проблемой, так как после потраченного рабочего дня на поиски решения, я расписался в собственном бессилии. Программа пишется в консольном режиме. Необходимо чтобы она совершала некоторые операции в базе данных. Для выполнения большинства скриптов программе нужны привилегии пользователя SYS под SYSDBA. Привожу программный код получившейся программы. При попытке выполнить данную программу под пользователем SYS вылетает ошибка Если выполнять данные действия под пользователем SYSTEM, то код вполне рабочий. В интернете прочитал о том, что для подключения под ролью SYSDBA необходимо использовать .NET (если действительно так, то мне необходимы примеры). Заранее хочу сообщить, что в строку инициализации были попытки ввести параметры подключения "DBA Privilege=SYSDBA", а также "RoleName=sysdba" Заранее благодарен за любую помощь! program Project1; {$APPTYPE CONSOLE} uses SysUtils, Windows, WinSvc, ShellApi, Registry, SqlExpr, DbxOracle; var dbpath:string='C:\Oracle\ora92'; dbname:string='database'; dbpass:string='password'; readst:string; result:boolean; Reg: TRegistry; Conn: TSQLConnection; Query: TSQLQuery; procedure MyWriteln(const S: string); var NewStr: string; begin SetLength(NewStr, Length(S)); CharToOem(PChar(S), PChar(NewStr)); Writeln(NewStr); end; procedure MyWrite(const S: string); var NewStr: string; begin SetLength(NewStr, Length(S)); CharToOem(PChar(S), PChar(NewStr)); Write(NewStr); end; begin try { TODO -oUser -cConsole Main : Insert code here } MyWrite('Путь до базы данных Oracle ['+dbpath+']: '); readln(readst); if (readst<>'') then dbpath:=readst; if not DirectoryExists(dbpath) then begin MyWriteln('ОШИБКА! Путь до базы данных Oracle не найден!'); readln; Exit; end; MyWrite('Имя базы данных ['+dbname+']: '); readln(readst); if (readst<>'') then dbname:=readst; MyWrite('Пароль пользователя SYS ['+dbpass+']: '); readln(readst); if (readst<>'') then dbpass:=readst; MyWrite('Подключаемся к базе данных... '); Conn := TSQLConnection.Create(nil); Query := TSQLQuery.Create(nil); try try Conn.ConnectionName:='OracleConnection'; Conn.DriverName := 'Oracle'; Conn.GetDriverFunc:='getSQLDriverORACLE'; Conn.LibraryName:='dbxora30.dll'; Conn.VendorLib:='OCI.DLL'; Conn.Params.Clear; Conn.Params.Add('DataBase='+dbname); Conn.Params.Add('User_Name=sys'); Conn.Params.Add('Password='+dbpass); Conn.LoginPrompt:=false; Conn.Connected:=true; Query.SQLConnection := Conn; Query.SQL.Text := 'SELECT banner FROM v$version'; Query.Open; while not Query.Eof do begin Writeln(Query.Fields[0].AsString); Query.Next; end; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; finally Query.Free; Conn.Free; end; readln; //КОНЭЦ except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. |
|
------- Отправлено: 14:29, 22-03-2012 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 01:38, 23-03-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Ветеран Сообщения: 637
|
Профиль | Сайт | Отправить PM | Цитировать Да я тоже уже перешел на .NET и все заработало.
Спасибо. |
------- Отправлено: 10:46, 23-03-2012 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие БД - Установка Oracle 11g, удаленное подключение | Const | Программирование и базы данных | 0 | 17-11-2011 16:36 | |
Сообщество разработчиков OpenOffice не хочет работать под крылом Oracle | OSZone News | Новости информационных технологий | 0 | 29-09-2010 12:30 | |
VBS/WSH/JS - Подключение сетевых дисков из под Win | Berline | Программирование и базы данных | 0 | 21-01-2010 11:11 | |
сетевое подключение есть - сети нет <под Vista, под ХР проблем нет> | Bright | Microsoft Windows Vista | 9 | 01-09-2007 14:03 | |
подключение второго винта под xp | andrew brave | Microsoft Windows 2000/XP | 7 | 15-03-2005 00:47 |
|