|
"\n;
Msql::Statement::maxlength
@max_lengths = $statement_handle->maxlength; '
Msql::Statement: :maxlength возвращает список фактических максимальных размеров
всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку
на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована
путем чтения всей таблицы и поиска максимального значения для каждого поля.
Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос
возвращает большой объем данных.
Пример
use Msql;
$db = Msql->connect;
$db->selectdb('mydata');
my Soutput = $db->query('select name, date from myothertable');
print "Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,
\n";
Msql::Statement::name
@column_names = $statement_handle->name;
Msql:: Statement:: name возвращает имена колонок данных, содержащихся в
описателе команды. При вызове в скалярном контексте функция возвращает ссылку
на массив. Как и для Msql::Statement::table , скалярное значение этого списка
(в противоположность значению функции при вызове в скалярном контексте)
совпадает со значением Msql::Statement::numfields
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my $output = $db->query("select * from mytable");
my @column_names = $output->names;
# Теперь @column_names - список колонок 'mytable'
Msql::Statement::numfields
$number_of_fields = $statement_handle->numfields;
Msql:: Statement: : numf ields возвращает число полей в каждой строке
результирующих данных, содержащихся в описателе команды. Во всех выходных
данных есть хотя бы одно поле, поэтому данная функция возвращает положительное
число для всех определенных описателей команд.
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my $output = $db->query("select * from mytable");
my $numfields = $output->numfields;
my $numrows = $output->numrows;
print "В каждой строке таблицы 'mytable' $numfields полей \n";
print "Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";
print "содержит" . ($numfields*$numrows) . " элементов данных.\n";
Msql::Statement::numrows
$number_of_rows = $statement_handle->numrows;
Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе
команды. Для описателя, который не может содержать строк, например,
возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если
описатель может содержать строки, но их нет - например, он возвращен SELECT,
для которого не найдено соответствия, -функция возвращает 0.
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my Soutput = $db->query("select * from mytable");
my $numrows = '$output->numrows;
print "B 'mytable' содержится $numrows строк данных\n";
Msql::Statement::table
@tables = $statement_handle->table;
Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных,
содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum
пример использования ссылки на массив.) Даже если запрос использовал только
одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является
то, что скалярное значение массива, возвращаемого $statement_handle->table ,
совпадает со значением $statement_handle->numfields .
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my Soutput = $db->query('select myothertable. name, myothertable.date,
mythirdtable. name from myothertable, mythirdtable where myothertable. name
= mythirdtable. name');
my @tables = $output->table;
# @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')
Msql::Statement::type
@column_types = $statement_handle->type;
Msql: : Statement: : type возвращает типы колонок данных, содержащихся в
|
|