TbtkScriptOraLobLocator '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' .. pas:class:: TbtkScriptOraLobLocator Вспомогательный класс для прямой работы с :term:`Lob-локатор`-ами на сервере. Класс хранит идентификатор локатора на сервере(Handle предоставляемый OCI) и предоставляет набор методов для работы с ним. Для работы с экземплярами данного класса при передаче в запросы следует использовать тип ``ftOraLobLocator``. Главной отличительной особенностью работы с блобами через локатор является тот факт что чтение/запись осуществляются без кеширования - потоково. Это снимает ограничение на количество данных со стороны клиента. Прочие же способы работы с блобами ограничены объёмом доступной оперативной памяти. Методы загрузки/сохранения работающие с файлом (:pas:class:`LoadFromFile`, :pas:class:`SaveToFile`) ограничений по объёму не имеют. Методы же :pas:class:`WriteData` и :pas:class:`ReadData` ограничены доступным объёмом оперативной памяти, т.к. работают с Variant-массивом хранящимся в памяти приложения; реализованы для совместимости с ранее имевшимися методами работы с блобами, такими как :pas:class:`LoadFromFileToBlob`. .. note:: * Время жизни экземпляра lob-локатора управляется счётчиком ссылок. * Экземпляр lob-локатора всегда привязан к одной конкретной сессии в рамках которой он был создан, если сессия закрыта, то возможность обратиться к клиентскому экземпляру остаётся валидной, но попытки оперировать данными на сервере будут возвращать cоответствующую ошибку. Если не известно состояние серверного объекта - следует проверять свойство :pas:class:`TbtkScriptOraLobLocator.IsInit`. .. seealso:: * :ref:`lob_locator` * :pas:meth:`TbtkScriptSelectionObject.CreateLobLocator` .. warning:: |not_supported| .. pas:attribute:: Length: Integer Количество байт в данном курсоре. Атрибут только для чтения :rtype: Integer .. pas:attribute:: IsTemporary: Boolean Проверить является ли данный курсор временным. Атрибут только для чтения :rtype: Boolean .. pas:attribute:: IsInit: Boolean Проверить инициализирован ли данный локатор, имеется ли связь с объектом на сервере. Свойство корректно отработает как в случае когда объект не связан с данными на сервере (не инициализирован), так и если сессия была закрыта - вернёт **False**; в противном случае, если связь имеется и, соответственно, доступна работа с данными локатора (на сервере) - возвращается **True**. Атрибут только для чтения :rtype: Boolean .. pas:attribute:: IsClob: Boolean Проверить является ли данный курсор CLOB-ом. Атрибут только для чтения :rtype: Boolean .. pas:attribute:: IsBlob: Boolean Проверить является ли данный курсор BLOB-ом. Атрибут только для чтения :rtype: Boolean .. pas:method:: WriteData(Data: Array) Загрузить данные на сервер - в качестве данных используется Variant-массив байт в памяти скриптера. :param Array Data: Массив данных полученный одним из Blob-методов или методом :pas:class:`ReadData`. .. pas:method:: ReadData(): Array Скачать данные с сервера - будут размещены в памяти скриптера в виде Variant-массива байт :rtype: Array .. pas:method:: LoadFromFile(FileName: String) Загрузить содержимое файла на сервер :param String FileName: Имя файла .. pas:method:: SaveToFile(FileName: String) Скачать данные с сервера - сохранить в указанный файл. :param String FileName: Имя файла для сохранения данных. .. pas:method:: CreateTemporary() Создать связь объекта с сервером - требуется для отправки данных на сервер.