Добрый день. Я сейчас прохожу курс повышения квалификации - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?
|
Работа с базами данных
Покажем приемы работы с интерфейсом DBI на примере класса доступа к уже знакомым DBF-файлам - модуля DBD::XBase. Этот модуль нужно установить описанным ранее способом прежде, чем работать с базами данных в формате XBase. В первом примере программа создает таблицу базы данных SQL-командой CREATE:
use DBI; # использовать DBI my $path = '.'; # каталог, где расположены таблицы БД my $table = 'mollusc'; # DBF-файл # подсоединиться к БД, используя драйвер DBD::XBase my $dbh = DBI->connect("dbi:XBase:$path") or die $DBI::errstr; # создать таблицу определенной структуры $dbh->do("CREATE TABLE $table (id INT, name CHAR(35), latin CHAR(30), area CHAR(45))"); $dbh->disconnect; # отсоединиться от БД
Следующая программа в цикле заполняет созданную таблицу данными из текстового файла, добавляя в нее записи SQL-командой INSERT:
use DBI; # используем DBI my $path = '.'; # каталог с таблицами БД my $table = 'mollusc'; # DBF-файл # подключаемся к БД, используя драйвер DBD::XBase my $dbh = DBI->connect("dbi:XBase:$path") or die $DBI::errstr; # подготовим SQL-команду для многократного выполнения my $sth = $dbh->prepare("INSERT INTO $table (id, name, latin, area) VALUES (?, ?, ?, ?)") or die $dbh->errstr(); # в цикле читаем строки для загрузки в БД open my $text, '<', 'mollusc.txt' or die; # файл, откуда while (my $data = <$text>) { # читаем данные, chomp($data); # удаляя \n # и разбивая строку на поля по разделителю ';': my ($id, $name, $latin, $area) = split(';', $data); # добавляем запись, подставляя значения в команду $sth->execute($id, $name, $latin, $area) or die; } close $text; # закрываем тестовый файл $dbh->disconnect; # отсоединяемся от БД
Далее можно выполнять различные действия с данными в таблице, используя команды SQL, как это сделано в программе, где изменяются значения перечисленных колонок в записи с указанным идентификатором и удаляется запись по уникальному номеру:
use DBI; # использовать DBI my $path = '.'; # каталог, где расположены таблицы БД my $table = 'mollusc'; # DBF-файл # соединиться с БД, используя драйвер DBD::XBase my $dbh = DBI->connect("dbi:XBase:$path") or die $DBI::errstr; # изменить запись с указанным идентификатором, # заменяя значения перечисленных полей на новые $dbh->do("UPDATE $table SET name=?,area=? WHERE id=?", undef, 'Жемчужная пинктада', 'Австралия', 89147) or die; # удалить запись с идентификатором 93749 $dbh->do("DELETE FROM $table WHERE id=93749") or die; $dbh->disconnect; # отсоединиться от БД
Для выборки данных из таблицы используется SQL-команда SELECT, в которой можно указывать, данные из каких колонок записи нужно включить в выборку, а также по какому условию отбирать строки таблицы:
use DBI; # использовать DBI my $path = '.'; # каталог, где расположены таблицы БД my $table = 'mollusc'; # DBF-файл # соединиться с БД, используя драйвер DBD::XBase my $dbh = DBI->connect("dbi:XBase:$path") or die $DBI::errstr; # выбрать у всех строк таблицы указанные поля my $sth = $dbh->prepare("SELECT name,area FROM $table WHERE id>?") or die $dbh->errstr; $sth->execute(1000) or die $sth->errstr(); # выполнить команду while (my @row = $sth->fetchrow_array) { # и напечатать print "@row\n"; # выбранные строки } # в цикле по одной $dbh->disconnect; # отсоединиться от БД
Для отображения информации из базы данных можно разработать клиентское приложение с графическим интерфейсом, используя библиотеку Perl/Tk, как это показано на рис. 15.1.