Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Еще одна система DatabaseEngines

Вы уже увидели общую идею системы доступа к базам данных DatabaseEngines (DBE). Она совершенно отличается от RDDs (Replaceable Database Drivers) Clipper, которые должны быть скомпонованы в файл EXE. Xbase++ DatabaseEngines, напротив, динамично загружаются и выгружаются во время работы. Основное же преимущество следующее: DBE состоят из компонентов, которые могут быть комбинированы.

Вы получаете огромную гибкость, комбинируя DatabaseEngines, и это кое-что, что мы хотим продемонстрировать примером. Для этого откройте папку Basics, и затем Dbe.

Сначала вы должны прочитать код программы в файле SDF.PRG, потому что то, что программа SDF.EXE показывает на экране, не очень интересно. Программа просто показывает базу данных, состоящую из нескольких записей, отсортированных в физическом и логическом порядке.

Самая интересная часть программы – это формат базы данных: Это файл ASCII в формате SDF (System Data Format), который управляется при помощи DatabaseEngines. Это значит, что файл ASCII можно открыть командой USE, как и любой файл DBF, и можно использовать команды, такие как GO TOP, SKIP или GO BOTTOM, для управления указателем записи. Вы все поняли правильно - файл ASCII имеет указатель записи. Его даже можно индексировать!

Для этого система DatabaseEngine для формата SDF комбинируется с DatabaseEngine для формата NTX, и создается индексный файл. После становится возможным искать данные в формате ASCII при помощи команды SEEK.

Xbase++ DatabaseEngines полностью отделяют базу данных от языка программирования. Когда вы открываете файл DBF или файл ASCII командой USE, вам не о чем беспокоиться. Единственное, о чем стоит позаботиться, это то, чтобы были загружены соответствующие DatabaseEngine.

Теперь вы можете закрыть папки Dbe и Basics.

Чему я научился?

Я получил представление о DatabaseEngines: они состоят из компонентов, которые управляют различными форматами, эти компоненты можно комбинировать друг с другом. При помощи Xbase++ я могу комбинировать DatabaseEngine NTX с DatabaseEngine SDF и получать SDFNTX. Я также могу склеить CDX DatabaseEngine с DBF DatabaseEngine, и результатом будет DBFCDX. 

-