Язык программирования Perl



              

Базы данных XBase


С широким распространением персональных компьютеров стал популярным формат баз данных, применяемый в "настольных" СУБД dBASE, Clipper и FoxPro, семейство которых обобщенно называется XBase. Базы данных в этом формате хранятся в таблицах с суффиксом DBF (Database File), а для работы с записями такой таблицы широко применяется произвольный доступ к отдельным записям и перебор записей в цикле. (Хотя работать с ними можно также при помощи языка реляционных запросов SQL.) Одно из средств для работы с DBF-таблицами в программах на Perl - это модуль XBase, который можно загрузить из хранилища модулей CPAN. Он предоставляет объектный интерфейс для создания и изменения баз данных в формате XBase. Например, программа создания таблицы DBF будет выглядеть так:

use XBase; # модуль работы с БД в формате DBF

my $table = XBase->create( # метод создания таблицы "name" => "mollusc.dbf", # имя файла # имена полей (колонок, столбцов) таблицы: "field_names" => ["ID", "NAME", "LATIN", "AREA"], # типы данных (N - число, C - строка, D - дата): "field_types" => [ "N", "C", "C", "C"], # максимальные длины полей: "field_lengths" => [ 5, 35, 30, 45], # длины дробной части (для чисел): "field_decimals" => [ 0, undef, undef, undef] ); $table->close(); # метод закрытия файла БД

Далее потребуется программа добавления данных в созданную таблицу из текстового файла. Например, такая:

use XBase; # модуль работы с БД в формате DBF my $table = new XBase "mollusc.dbf" # конструктор DBF or die Xbase->errstr; # обработка ошибок my $recno = 0; # добавляемые записи нумеруются с нуля

open my $text, '<', 'mollusc.txt' or die; # файл, откуда while (my $data = <$text>) { # читаем данные, chomp($data); # удаляя \n # и разбивая строку на поля по разделителю ';': my ($id, $name, $latin, $area) = split(';', $data); # добавляем запись, указывая поля в порядке создания $table->set_record($recno, $id, $name, $latin, $area); $recno++; # и увеличиваем счетчик записей } close $text; # закрываем тестовый файл $table->close(); # и файл базы данных




Содержание  Назад  Вперед