к оглавлению

Dynamic File Driver (DFD)

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

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

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

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

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)

к оглавлению

Знаете ли Вы, что абстракция через спецификацию - это прием программирования, позволяющий абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры. Абстракция через спецификацию позволяет абстрагироваться от процесса вычислений описанных в теле процедуры, до уровня знания того, что данная процедура делает. Это достигается путем задания спецификации, описывающей эффект ее работы, после чего смысл обращения к данной процедуре становится ясным через анализ этой спецификации, а не самого тела процедуры. Мы пользуемся абстракцией через спецификацию всякий раз, когда связываем с процедурой некий комментарий, достаточно информативный для того, чтобы иметь возможность работать без анализа тела процедуры.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution