MySQL & mSQL



Msql.pm API - часть 4


Пример

use Msql;

my $db = Msql->connect;

$db->selectdb('mydata');

my $fields = $db->listfields('mytable');

warn ("Проблемы с 'mytable-': " . $db->errmsg)

if (not $fields);

# $fields явяется ссылкой на все поля в таблице 'mytable'.

print "mytable содержит следующие поля:\n";

print $fields->as_string;

Msql::listindex

@index_handles = $db->listindex($table,$index);

Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем «Index». В первой строке указан тип индекса, который в mSQL2.0 всегда «avl». Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.

Пример

use Msql;

my $db = Msql->connect;

$db->selectdb('mydata');

my $mytable_fields = $db->listfields('mytable');

my @indices = $mytable_fields->listindices;

# Я знаю имена всех индексов.

foreach (@indices) {

my $index_info_handle = $db->listindex('mytable',$_);

my (@index_info) = $index_info_handle->fetchcol(0);

my $type_of_index = shift(@index_info);

# $type_of_index содержит теперь тип индекса (вероятно, 'avl'),

# a @index_info содержит теперь список полей в индексе.

Msql::listtables

@tables = $db->listtables;

Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.

Пример

use Msql;

my $db = Msql->connect;




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