Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

DDF. Формат словарей NetWare SQL/XQL (для приложений под Btrieve)

SQL





Hello All!

Вот поковырялся я тут и решил для тех кому интересно опубликовать
формат словарей NetWare SQL/XQL. В смысле того, что нахожу сию
идею полезной для разработчиков приложений под Btrieve. Сразу предупреждаю:
доки у меня нет, это все я сам расковырял по примерам файлов данных и
словарей XQL.

Описание всех таблиц хранится в простом Btrivовском файле file.ddf имеющего
следующий формат рекорды:

ID типа word //table unique idedntifer
Name типа string длиной 20 //table identifiction name
Location типа string длиной 64; //File location path
Flags типа byte // File flags

Reserved 10 byte // Такого нет, это я сам обозвал, т.к запись на 10 байт
длиннее

Пример:
N recordы
1 . X$File g:basefile.ddf ...где то там его флаги
2 X$Field g:basefield.ddf
3 . X$Index g:baseindex.ddf
4 . Doctors g:basedoctors.dta
5 . Patients g:basepatiens.dta

итд ...

Таким, образом число таблиц, которые надо открыть равно числу рекордов в ентом
файле. Каждая рекорда описывает некую таблицу. Такой подход несколько
неэкономичен, так как открывать надо все таблицы какие указаны здесь
пусть даже между ними нет отношений. Конечно это оправдано в смысле SQLя, т. к.
там отношения между таблицами устанавливаются во время запроса. Hо если есть
четкая структура отношений между некими таблицами вовсе не обязательно
открывать все остальные. А так как файл описатель всегда должен называться
file.ddf то без этого не обойтись.

Описания полей хранятся в файле fields.ddf и имеющего следующий формат
рекорды:

fldID типа word //field unique identifer
FileID типа word //file unique identifer
fldName типа string длиной 20 //Field name
fldType типа byte //Field type (По моему Btrevовский)
fldOffset типа word //Field offset
fldSize типа word //Field size
fldDec типа byte //По моему для типа Decimal
fldFlags типа word //Field flags

Хранятся описания полей file.ddf, себя и index.ddf а также всех остальных
таблиц, причем пофиг в каком порядке, главное чтобы FileID соответствовало.
Имена полей файла file.ddf ('Xf$Id','Xf$Name','Xf$Loc','Xf$Flags')
Имена полей файла field.ddf('Xe$Id','Xe$File','Xe$Name','Xe$DataType',
'Xe$Offset','Xe$Size','Xe$Dec','Xe$Flags')
Имена полей файла index.ddf ('Xi$File','Xi$Field','Xi$Number',
'Xi$Part','Xi$Flags')
Мне кажется, что они так должны называться наглухо (т.к. поле ключевое,
возможно XQL по этим именам ищет).

Структура описателя индексов

FileID типа Word //File unique identifer
FieldID типа Word //Field unique identifer
ndxNmb типа Word //Index number
ndxPart типа Word //Index part
ndxFlags типа Word //Index flags

Пример приводить не буду. И так понятно. Кому непонятно - мыльте,
заууенкодю несколько файлов-примеров к XQL, я по ним разбирался.

В принципе удобно хотя можно было-б покрасивее сделать.

Если я не прав то пусть меня закидают камнями те у кого есть фирменная
дока. Пусть я умру +, но народ будет знать правду ...

BRGDS, Euge№e Eugene Krainov 2:5051/4.2

  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2021
    Реклама на сайте