|
Пример
use Msql;
my $db = Msql->connect;
my $result = $db->dropdb('mydata');
die "Команда не выполнена!"
if result == -1;
print "'mydata' потеряна навсегда.\n";
Msql::errmsg
$error = $db->errmsg:
Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером
mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда
заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает
undef.
Пример
use Msql;
my $db = Msql->connect;
my Serror = $db->errmsg;
warn("Вот последняя по времени ошибка mSQL: $error");
Msql::getsequenceinfo
($step, $value) = $db->getsequenceinfo($table);
Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция
возвращает шаг и значение последовательности, если она определена в таблице.
Если в указанной таблице не определена последовательность, то возвращается
неопределенное значение undef, и в Msql: :errmsg помещается ошибка.
Пример
use Msql;
my $db = Msql->connect;
my ($step, $value) = $db->getsequenceinfo('mytable');
die "B mytable не задана последовательность" if not $step;
print "B mytable есть последовательность со значением $value и шагом
$step\n";
Msql::host
Shost = $db->host;
Msql: :host возвращает имя узла сервера базы данных как скаляр. Не
гарантируется возврат канонического или хотя бы полностью квалифицированного
доменного имени. В действительности, хотя это и не документировано, Msql:: host
возвращает ту самую строку, которая передавалась серверу при вызове
Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если
использовалась форма Msql: : connect без аргументов.
Пример
use Msql;
my $ijh - Msql->connect( 'www.myserver.com');
my $host = $db->host;
print "Вероятно, вы видите 'www.myserver.com': $host\n";
Msql::listdbs
@databases = $db->listdbs;
Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз
данных нет, она возвращает пустой массив.
Пример
use Msql;
my $db = Msql->connect;
my @databases = $db->listdbs;
print "Имеющиеся базы данных:\n\n" . join("\n",@databases);
Msql::listfields
$fields = $db->listfields($table);
Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе
данных. Она возвращает ссылку на объект, который содержит имена всех полей и
некоторые другие сведения. Эта ссылка известна как описатель команды (statement
handle). Содержащиеся в нем данные можно извлечь с помощью функций
Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0),
Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name ,
Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey ,
Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не
существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg
помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием,
который делает данную функцию несколько устаревшей.
Пример
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 принимает в качестве аргументов имена таблицы и индекса и
возвращает массив описателей команд, содержащих данные о каждом из индексов.
|
|