Компоненты 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/


TOraDB

Свойства
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; Собирательное свойство которое задает некоторые дополнительные параметры работы компонента.
Содержит следующие поля: (их описание см. ниже)
  • ConvertCRLF:boolean;
  • FloatPrecision:integer;
  • IntegerPrecision:integer;
  • SmallIntPrecision:integer;
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.

TOraPreferences

Свойства
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.


Copyright (c) by Andrey Romanchenko