Компоненты DOCI для прямого доступа к Oracle Version 1.15 |
Copyright © 1998-2002 by Andrey Romanchenko
All rights reserved.
e-mail: | lasersquad@tut.by |
web site: | http://DynamicArrays.narod.ru/ |
Свойства | |
property DBLogin:string; | Имя пользователя для логина в базу. |
property DBPassword:string; | Пароль для логина в базу. Используйте это свойство в редких случаях когда пароль не запрашивается при старте приложения потому как пароль хранится и показывается в Object Inspectore открытым текстом. |
property DBServer:string; |
Синоним сервера к которому конектимся. Синоним можно создать с помощью "Oracle Net8 Easy Config" либо редактируя файл %oraclehome%/network/admin/tnsnames.ora (%oraclehome%/net80/admin/tnsnames.ora - для некоторых версий Oracle Client). |
property ConnectAs:TOraConnectAs; |
TOraConnectAs = (caNormal, caSYSDBA, caSYSOPER); Задает уровень привилегий устанавливаемого соединения. caSYSDBA и caSYSOPER следует задавать если у вас есть соответствующие системные привилегии и известен соответствующий пароль. SYSOPER - позволяет делать alter database open/mount, alter database backup, archive log, and recover. SYSBDA - содержит все системные привилегии с admin option и системную привилегию sysoper. |
property LoginPrompt:boolean; |
Выводить ли окошко с запросом имени и пароля перед установлением соединения с базой. True - выводить. False- не выводить. |
property OraTransIsolationLevel:TOraTransIsolationLevel; | Уровень изоляции транзакций для сессии. Все начинающиеся в этой сессии транзакции будут иметь этот уровень изоляции (если он не переопределен с помощью OraTransIsolationLevel). |
property OraSessionIsolationLevel:TOraSessionIsolationLevel; | Уровень изоляции новой транзакции. Каждая начинающаяся транзакция будет иметь этот уровень изоляции. Если tiDefault то уровень берется из OraSessionIsolationLevel. |
property Preferences:TOraPreferences; |
Собирательное свойство которое задает некоторые дополнительные параметры работы компонента. Содержит следующие поля: (их описание см. ниже)
|
property RollbackOnDisconnect:boolean; |
Надо ли делать Rollback текущей транзакции при закрытии соединения с базой.
По умолчанию RollbackOnDisconnect=False, т.е. не делать Rollback . Если приложение падает и не успевает правильно отсоединиться от базы то Oracle автоматически делает Rollback текущей транзакции. |
property SQLTrace:TOraSQLTrace; |
Включает или выключает SQL trace опцию для сессии. Если SQLTrace = stTrue то вы можете анализировать все выполненые в этой сесси SQL выражения (запросы) с помощью утилиты tkprof. Она дает много полезной информации такой как: CPU time, elapsed time, disk I/O, etc для каждого SQL выражения (запроса), а также общую информацию по всем выполненым запросам. См. раздел "Oracle Server Tuning" документации для более подробной информации о tkprof. Когда SQLTrace = stDefault то значение SQL trace опции (не свойства TOraDB.SQLTrace!) определяется параметром инициализации SQL_TRACE. |
property InTransaction:boolean;readonly! | Показывает находимся ли мы в режиме выполнения транзакции. |
Методы | |
constructor Create(AOwner:TComponent); override; | Создаем компонент и инициализируем его поля. |
destructor Destroy; override; | Если необходимо закрываем коннект к базе и потом разрушаем компонент. |
procedure Open; |
Устанавливаем соединение с базой. Если свойство LoginPrompt= True то имя и пароль запрашивается у пользователя. Иначе используются значения из DBLogin, DBPassword, DBServer |
procedure Close; | Закрываем соединение с базой. |
procedure StartTransaction; | Выставляет уровень изоляции транзакции (OraTransIsolationLevel) и если все прошло успешно то выставляет InTransaction в True. |
procedure CommitTransaction; | Делает Commit текущей транзакции и если все прошло удачно то сбрасывает флаг InTransaction в False. |
procedure RollbackTransaction; | Делает Rollback текущей транзакции и если все прошло удачно то сбрасывает флаг InTransaction в False. |
function TestError(where:string;ex:sword):sword; |
Принимает на вход код (ex:sword) результата выполнения OCI вызова и генерирует исключение если произошла ошибка.
Иначе просто возвращает переданый ей код. sword - это специальный тип который эквивалентен integer в Delphi. |
procedure GetServicesList(AList: TStrings); | Парсит tnsnames.ora и возвращает список алиасов (AList: TStrings) зарегистрированных на этой машине. |
События | |
property BeforeInitOCI:TBeforeInitOCI; |
Вызывается непосредственно перед загрузкой OCI dll. Позволяет запретить загрузку OCI dll (и инициализацию библиотеки), а так же позволяет сменить имя dll файла в случае если оно отличается от стандартного (oci.dll). |
property AfterInitOCI :TAfterInitOCI; | Вызывается когда загрузка и инициализация OCI библиотеки прошла успешно. |
property BeforeLogin:TBeforeLoginEvent; |
Вызывается после инициализации библиотеки OCI, но перед тем как будет вызвана первая ф-ция OCI. А если свойство LoginPrompt=True, то событие будет вызвано перед выводом окна запроса имени и пароля. Таким образом в обработчике события можно запретить соединение с базой еще до вывода окошка диалога. |
property AfterLogin:TAfterLoginEvent ; | Поисходит сразу после того как вы успешно установили соединение с базой. Позволяет выполнить какие либо действия после логина в базу. |
property OnStartTransaction:TNotifyEvent; | Вызывается после старта транзакции перед завершением метода StartTransaction. |
property BeforeCommit:TNotifyEvent; | Вызывается непосредствнно перед тем как будет вызван OCI метод OCITransCommit. |
property AfterCommit:TNotifyEvent; | Вызывается после того как произошел Commit. (в конце метода CommitTransaction. |
Свойства | |
property ConvertCRLF:boolean; |
Конвертирование между CRLF (#13#10) и LF (#10). В Oracle строчки текста разделяются только символом переводом строки LF (#10). В Windows они разделяются возвратом каретки (carriage return - CR ) и переводом строки (linefeed - LF). Если ConvertCRLF = True, то конвертирование будет осуществляться автоматически. Установка ConvertCRLF в False запрещает конвертирование. |
property FloatPrecision:integer; | Максимальная точность представления чисел в полях с плавающей точкой (Double). Установка этого свойства в 0 указывает что все не целые (с дробной частью) числа интерпретировать как числа с плавающей точкой даже если эти числа представлены с большей точностью чем Double в Delphi (15 цифр) что приведет к потере точности. Установка этого свойства в значение >0 сделает что числа с точностью больше указаной будут интерпретироваться как строки. Число с плавающей точкой будет преобразовано в строку на сервере используя настройки NLS_LANG сервера. |
property IntegerPrecision:integer; | Максимальная точность представления целых чисел. Установка этого свойства в 0 указывает что все целые числа (без дробной части) с точностью 9 и меньше цифр будут представлены полями типа integer. Все остальные целые числа будут представлены как Double или String в зависимости от значения свойства FloatPrecision. |
property SmallIntPrecision:integer; | Максимальная точность представления коротких целых чисел (SmallInt). Установка этого свойства в 0 указывает что все целые числа с точностью 4 и меньше цифр будут представлены полями типа Smallint. Все остальные числа будут представлены в соответствии с настройками IntegerPrecision и FloatPrecision. |