PerlでPostgreSQL操作できるようにしなきゃいけなくって。
動作テストしたかったため、やりはじめてはみたものの
環境作るのにかなり手こずった。。
(だってPostgreSQLとか無知だしPerl詳しくないし。)
調べた情報がどれも古かったので、
2008年8月時点でできたことを
残しとく。
*****************************************************
WindowsでPerlを使ってPostgreSQLを操作のためのメモ。
ActivePerl5.8.8.822をダウンロード
(http://www.activestate.com/store/download.aspx?prdGUID=81fbce82-6bd5-49bc-a915-08d58c2648ca)
ActivePerlをインストール
PostgreSQLをPerlで処理するには2つのモジュールが必要で・・・
まずPerl Package ManagerでDBIモジュールをアップデート
もうひとつのDBD-PgはPPMにないので拾ってきた。
http://www.cs.cmu.edu/~blangner/perl/dbd_pg.html
のを取ってきてみた。
DBD-Pg.zipを解凍。
DBD-PgフォルダをC:\(root)にコピー。
コマンドプロンプトで、C:\DBD-Pgに移動して
C:\DBD-Pg >ppm install DBD-Pg.ppd
を叩く。
インストール完了。
続いてPostgreSQL。
PostgreSQL8.3.3-1 (http://www.postgresql.jp/PostgreSQL)
をインストール。
Webサーバ環境はAn HTTPD (http://www.st.rim.or.jp/~nakata/)
ここまでで躓きまくったのでちゃんと来るのに1日。長かった。。。
これでとりあえず整ったので、あとはCGI。
実行しようとしたら
msvcr70.dllがないから無理って言われてしまったので、
ネットで拾ってきてシステムフォルダ(C:\WINDOWS\system32)に。
テーブルの値取ってこれた。
************* CGI サンプル ***********************
#!/usr/bin/perl
use DBI; # DBI モジュール
$dbname = "●●";
$host = "localhost";
$user = "●●";
$password = "●●";
$table = "●●";
# データベースへ接続。
$conn = DBI->connect("dbi:Pg:dbname=$dbname;host=$host;port=●●", $user, $password );
# テーブルから値を取ってくる。
$sql = "select * from $table";
# SQL の発行
$result = $conn->prepare($sql);
$ref = $result->execute;
# 値の表示
my @row;
while(@row = $result->fetchrow_array) {
print "@row\n";
}
$result->finish;
$conn->disconnect;
*************************************************
つかれたー。