PostgreSQL に関するインストールメモ2(2002/02/24) 
 

DBI + DBD::Pg とは

Perl上から直接データベースとお話できるインタフェースをもっているプログラムです。使用法は、とっても簡単です。お話できるデータベースは、 Oracle/Postgres/Sysbase/Informix.... ってな感じです。

PostgreSQL7.1 Perlインタフェース

Postgresql 〜 Install memo

 

設定方法

1.DBI (v1.21) の設定をする。

% cd /opt/local/src
% wget http://www.cpan.org/authors/id/TIMB/DBI-1.21.tar.gz
% gzip -cd DBI-1.21.tar.gz | tar xf -
% cd DBI-1.21
% perl Makefile.PL
% make
% make test
% su
# make install

CPAN DBI でっせ

2.DBD::Pg(v1.01) の設定をする。

postgresユーザで行う
% cd /opt/local/src
% wget http://www.cpan.org/authors/id/MERGL/DBD-Pg-1.01.tar.gz
% gzip -cd DBD-Pg-1.01.tar.gz | tar xf -
% cd DBD-Pg-1.01
% setenv POSTGRES_INCLUDE /opt/local/pgsql/include
% setenv POSTGRES_LIB /opt/local/pgsql/lib
% perl Makefile.PL
% make
% make test
% su
# make install

CPAN DBD::Pg でっせ

3.うまく new Pg って Perl からよめない・・・なぜなんだ??   答え→どうやら、postgres / Pg をインストールするときに失敗していたらしい。make は、必ず root で行うと良い (^^♪ 。

     http://www.icefree.org/~vvp/pc/network/aplogpgsql.html
     http://www.itboost.co.jp/inst/inst_09.php

     http://www.itboost.co.jp/perl/perl_11.php

4.うまくいった・・・。しかし相変わらず Pg が使えないなので DBI::Pg 経由・・・ 答え→インストールが失敗していたらしい。

#!/usr/bin/perl
use strict;
use DBI;

my ($dbh, $sth);
my ($data_source, $user_name, $sql);
my ($id, $name, $zip, $addr, $tel);
my ($ary, $num, $i);

$data_source = 'dbi:Pg:dbname=test';
$user_name = 'postgres';
$dbh = DBI->connect($data_source, $user_name) || die $dbh->errstr;

$sql = 'select * from t2';
$ary = $dbh->selectall_arrayref($sql) || die $dbh->errstr; $num = @$ary;
for ($i = 0; $i < $num; $i++) {
   print "$ary->[$i][0], $ary->[$i][1]\n";
}

print "\n";
$dbh->disconnect();

5.Pg からのアクセス経由方法です。

#!/usr/bin/perl
use Pg;
$dbname = "test";

$conn = Pg::connectdb("dbname=$dbname");
$res = $conn-> exec("select * from t2");

print "name telno email\n";
print "--------------------------------------\n";
while(@item = $res-> fetchrow) {
print "@item[0] @item[1]";
print ("\n");
}