Perl で PostgreSQL (WindowsXP DBD-Pg DBI)。 | にせものアツシのブログ。

にせものアツシのブログ。

ものまねタレントでもないし、ブラックメールも送らない。EXILEのほうじゃない。

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;

*************************************************

つかれたー。