Clarion в России  
Главная arrow Описание продуктов arrow Dynamic File Driver (DFD)
18.08.2017
 
 
Dynamic File Driver (DFD)

Динамический файловый драйвер (DFD) предоставляет разработчикам интерфейс для формирования файловых структур во время исполнения программы. Можно задавать структуру файлов для любых поддерживаемых файловых систем (ISAM или SQL) с помощью стандартного синтаксиса задания свойств. Если динамический файл создан с использованием SQL драйвера, то для автоматического определения структуры файла можно использовать PROP:SQL и исполнить либо опреатор SELECT, либо вызвать серверную хранимую процедуру, которая возвращает результирующий набор данных. Динамический файловый драйвер обладает мощной функциональностью, которая позволяет создавать файловые структуры во время выполнения программы. Разработаный класс DynFile упрощает задачу создания файловых структур. Класс инкапсулирует все необходимые для создания динамических файлов функции и использование его методов сокращает требующийся для создания динамического файла код до нескольких строк. Вместе с шаблоном DynaFile Вы получите всю необходимую функциональность.

Вот несколько примеров использования DFD:

" Динамическое создание структуры FILE которая соответствует результату любого SELECT оператора SQL или хранимой процедуры.
" Динамическое создание структуры FILE для In-Memory драйвера для использования в качестве кэша данных для любого источника (ISAM или SQL).
" Создание временных таблиц, которые соответствуют запросу пользователя.
" Можно избавиться от жесткой привязки к словарю данных.
" Создание и обработка таблиц, которые не описаны в словаре данных.
" Изменение драйвера БД во время выполнения программы с помощью Prop:Driver.

Концептуальный пример использования динамических файлов

При работе с динамическими файлами нужно последовательно выполнить следующие действия:

1. Декларировать в секции данных ссылочные переменные:

AFile &FILE
AKey &KEY

2. Задать в секции CODE необходимые свойства:

AFile &= NEW(FILE)
AFile{PROP:Driver} = 'TopSpeed'
AFile{PROP:Create} = TRUE
AFile{PROP:Name, 1} = 'Field1'
AFile{PROP:Type} = 'LONG'
AFile{PROP:Dim} = 3
AKey &= AFile {PROP:Key, 1}
AKey{PROP:Type} = 'KEY'
AKey{PROP:Primary} = TRUE
AKey{PROP:Field} = 1

3. Вызвать FIXFORMAT() для создания и инициализации динамической структуры.

FIXFORMAT(AFile)

затем вызвать CREATE(), OPEN() и выполнить DISPOSE() по окончании:

CREATE (AFile)
OPEN(AFile)
! do cleanup processing
DISPOSE (AFile)

Задание файла с помощью PROP:SQL

Если целевым драйвером является SQL драйвер, то для задания структуры FILE можно использовать
PROP:SQL. По прежнему нужно будет использовать FIXFORMAT. Для получения необходимой структуры можно использовать либо опреатор SELECT, либо вызов хранимой процедуры, которая возвращает результирующий набор данных.
Пример:

AFile &FILE
CODE
AFile &= NEW (FILE)
AFile {PROP:Driver} = 'MSSQL'
AFile {PROP:Owner} = 'Connection String'
AFile {PROP:SQL} = 'SELECT * FROM MyTable'
FIXFORMAT (AFile)
UNFIXFORMAT (AFile)
AFile {PROP:SQL} = 'CALL MyStoredProcedure(3)'
FIXFORMAT (AFile) !Now the file will match the columns
!returned by the stored procedure
DISPOSE (AFile)
 
< Пред.   След. >
 
Top! Top!

 .