efox.gif (1606 bytes)Для разработчиков VFP

Уровень абстракции данных

Инструментальные средства "EvnFox"

EvnFox home

Vallmind home

Для реализации функционала, описанного в разделе "Доступ к данным" практически созданы два компонента:

маркированный список Процедуры и функции, полностью заменяющие команды FoxPro для прямого доступа к данным подобно: LOCATE, SCATTER, GATHER, BROWSE для использования в случаях, где область действия данных команд существенно ограничена фразой For.
маркированный список Библиотека преобразования синтаксиса SQL запросов FoxPro к синтаксису MS SQL.

Библиотека EFoxSQL.fll используется для конвертации синтаксиса как непосредственно SELECT-SQL команд FoxPro, которые следует передавать в функцию E_SQL(), так и условий For, передаваемых в функции: E_Locate(), E_Replace(), ...

Весь доступ к данным осуществляется только через функции уровня абстракции данных, которые находятся в процедурном файле eproclib.prg . Система будет сама выбирать синтаксис, и технологию доступа к данным в зависимости от типов данных в источниках данных и имеющихся транспортов и на основании карты данных и приложений.

Более отвлеченно о технологии читайте в описании продукта EasySQL4Fox здесь или на сайте.

Разработчику, который изначально ориентирован на создание приложений, работающих в среде клиент-сервер, может быть и нет соблазна попользоваться свободой прямого доступа к данным. Бери да листай, правь что нужно. И никаких тебе затрат кода и производительности на создание представлений и сохранении данных в источнике. Так и работает FoxPro. И зачем отнимать эту возможность у приложения на FoxPro, если в отдельных многих или даже не многих случаях оно может быть установлено в варианте данных в DBF таблицах в быстрой локальной сети ? А , с другой стороны, какой имидж может быть у крутого софта, если он не может работать с SQL Server. Да и есть предел в объеме данных, который Fox не сможет переварить. Развивая эту мысль мы и разобьём весь наш код на две группы по признакам:

маркированный список этот функционал должен использовать имитацию технологии прямого доступа с данными SQL (аналоги LOCATE,GATHER,SCATTER,BROWSE,...) и непосредственно LOCATE,GATHER,SCATTER,BROWSE,... при размещении данных в DBF по следующим причинам:
маркированный список при работе с DBF это будет эффективнее, чем создавать лишние представления и их обновлять;
маркированный список часть (иногда очень большая) кода очень сложного и отработанного годами бессонных ночей в FoxPro не реально, да и не нужно полностью переписывать на клиент-сервер.
маркированный список этот функционал изначально ориентирован на SQL запросы (например - отчеты) и не может быть реализован без них.

Другими словами это и определены две различные технологии доступа к данным, которые должен обеспечивать уровень абстрагирования:

маркированный список прямой доступ;
маркированный список запросы

Мы уделяем внимание только pass-through, так как считаем, что технология представлений (view) более жесткая в обращении с ней.


См. в интернет:    Долина разума    Система учета "Events"     Рассчеты с населением за газ    Предприниматель     Инструментальные средства "EvnFox"    www.vallmind.ru    EasySQL4Fox    ECalcPad    VMZipper    Святая трезвость    Трезвая Россия