|
Поиск по сайту:
Главная
О проекте
Web-мастеру
HTML & JavaScript
SSI
Perl
PHP
XML & XSLT
Unix Shell
MySQL
Безопасность
Хостинг
Другое
|
|
Обработка файлов формата DBF
Для взаимодействия с файлами этого формата существует специальный модуль - Xbase.pm На текущий момент поддерживается только возможность чтения таких файлов. Этот модуль подключается стандартным образом: use Xbase;
Новый Xbase объект создается следующим образом:
$database = new Xbase;
Будет создан объект $database , который в дальнейшем будет использоваться для взаимодействия со всевозможными методами, которые поддерживает модуль. Доступ к базе данных осуществляется следующим образом:
$database->open_dbf($dbf_name,$idx_name);
Мы ассоциировали DBF-файл и необязательный индексный файл с объектом. Чтобы определить тип (database type) можно сделать следующее:
print $database->dbf_type;
Вернется строка, которая, если Xbase файл открыт, будет содержать значение
DBF3, DBF4 или FOX.
Чтобы узнать дату последнего обновления делается следующее:
print $database->last_update;
Возвращает строку с датой.
Чтобы узнать номер последней записи можно сделать следующее:
$end=$database->lastrec;
Вернется номер последней записи в файле с базой данных.
Информацию о статусе базы данных можно посмотреть следующим образом:
$database->dbf_stat;
В стандартный выходной поток будет напечатана информация о статусе и структуре базы данных. Этот метод работает аналогично команде display status .
Посмотреть информацию о статусе индексного файла можно используя метод idx_stat :
$database->idx_stat;
Печатает в стандартный выходной поток (STDOUT) информацию о статусе открытого IDX-файла.
Для того чтобы перейти на начало файла есть метод go_top :
$database->go_top;
Передвигает курсор чтения на физическое начало файла,если индексы не существуют и на первую запись, соответствующую порядку, который задается индексом, в противоположном случае.
Для того чтобы перейти на конец файла есть метод go_bottom :
$database->go_bottom;
Передвигает курсор чтения на физический конец файла,если индексы не существуют и на последнюю запись, соответствующую порядку, который задается индексом, в противоположном случае.
Чтобы перейти на следующую запись есть метод go_next :
$database->go_next;
Эквивалентно команде skip 1 , которая передвигает курсор на следующую запись.
Чтобы перейти на предыдущую запись есть метод go_prev :
$database->go_prev;
Эквивалентно команде skip -1 , которая передвигает курсор на предыдущую запись.
Есть возможность осуществить поиск по заданному ключу:
$stat=$database->seek($keyvalue);
Эта команда устанавливает курсор на первую запись, соответствующую данному ключу. Но в данном случае база данных должна быть открыта с соответствующим индексом, в противоположном случае будет выдано сообщение об ошибке и исполнение прекратиться. Возвращается значение, содержащее информацию о том, был ключ найден или нет.
Чтобы узнать номер записи, на которой стоит курсор можно использовать следующую команду:
$current_rec=$database->recno;
Метод bof возвращает значение true , если курсор находится в самом начале файла.
if ($database->bof) {
print " At the very top of the file \n";
}
Аналогично действует метод eof :
if ($database->eof) {
print " At the very end of the file \n";
}
Чтобы прочитать содержимое какого-либо поля записи можно поступить так:
print $database->get_field("NAME");
Возвращает строку с содержимым поля. Если данная запись помечена для удаления, то использует псевдоимя поля _DELETED .
Чтобы прочитать значения полей записи в массив можно поступить так:
@fields = $database->get_record;
В массиве они будут располагаться в такой же последовательности, как и в базе данных.
Для закрытия базы данных используется метод close_dbf .
$database->close_dbf;
Закрывает файл с базой данных, индексами и комментариями. В завершение приведем небольшой пример программы, которая распечатывает статус базы данных и индексного файла, а также дату последнего обновления и количество записей в базе данных.
#!/usr/bin/perl
use Xbase;
# подключение модуля
$database = new Xbase;
# создание объекта
$d = "/home/smit/employee.dbf";
# имя файла с базой
$i = "/home/smit/employee.cdx";
# имя индексного файла
$database->open_dbf($d,$i);
# открываем базу данных
$database->dbf_stat;
# печатаем статус и структуру
# базы данных
$database->idx_stat;
# печатаем статус и структуру
# индексов
@fields = $database->get_record;
print @fields,"\n";
# печатаем содержимое текущей записи
print $database->last_update, "\n";
# печатаем дату последнего обновления
$end = $database->lastrec;
print $end;
#печатаем номер последней записи
Полная спецификация языка Perl приводиться здесь.
[Назад]
[Содержание]
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|
|
|