|
книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.
После загрузки пакета разархивируйте его:
tar xvzf Msql-Mysql-modules-1.2017.tar.gz
cd Msql-Mysql-modules-1.2017
В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по
установке. Сначала нужно выполнить файл Makefile.PL:
perl Makefile.PL
Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL
или те и другие. Можно установить модули для любого установленного вами сервера
баз данных.
После проверки системы программа запрашивает местоположение установки mSQL. Это
каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки
и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local
/Hughes, но обязательно проверьте это, поскольку во многих системах
используется /usr/local или даже /usr/local/Minerva.
Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это
каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию -
/usr/local. Это расположение верно для большинства установок, но следует
обязательно проверить, не используются ли другие каталоги.
После установки сценарий создает соответствующие make-файлы и завершается.
Затем нужно запустить make и скомпилировать файлы.
make
Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна
пройти без ошибок. После завершения ее работы будут созданы все модули, и
единственное, что останется - это протестировать и установить их.
make test
Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из
которых должно следовать . . . ok. И наконец, нужно установить модули.
make install
У вас должно быть разрешение записи в каталог установки Perl. Кроме того,
необходимо иметь разрешение на запись в системный каталог для программ (обычно
/usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем
вспомогательные программы pmsql, pmysql и dbimon.
DBI.pmAPI
DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и
MysqlPerl могут быть более распространены в унаследованных программах, новые
программы следует писать с использованием DBI.
use
use DBI;
Следует объявлять во всех программах Perl, использующих модуль DBI.
DBI::available_drivers
@available_drivers = DBI->available_drivers;
@available_drivers = DBI->available_drivers($quiet);
DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция
выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в
аргументе не передано значение true, то при обнаружении двух одноименных
модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер
для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.
Пример
use DBI;
my @drivers = DBI->available_drivers;
print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\n Ho нас
интересуют только mSQL и mysql. :)\n";
DBI::bind_col
$result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);
DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком
чтении или изменении колонки изменяется значение соответствующей переменной.
Первым аргументом является номер колонки в команде, при этом колонки нумеруются
с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана
к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD:
:mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то
причин сделать привязку функция возвращает неопределенное значение undef.
Пример
use OBI;
my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
my $query = "SELECT name, date FROM myothertable";
my $myothertable_output = $db->prepare($query);
my ($name, $date);
$myothertable_output->bind_col(1,\$name,undef);
$myothertable_output»bind_col(2, \$date, undef);
# Теперь $name и Sdate привязаны к соответствующим полям выходных данных.
$myothertable_output->execute;
while ($myothertable_output->fetch) {
# Каждый раз $name и $date автоматически изменяются.
print "Имя: $name Дата: $date\n"; }
DBI::bmd_columns
$result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);
DBI: : bind_columns привязывает весь список скалярных ссылок к значениям
соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш
атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот
|
|