« SQLserver に perl でアクセス | メイン | Linux から Windows への perl スクリプトの移植 »

2004年03月08日

Perl から DBI 経由でデータベースを使う

perl から Access や SQL Server のデータベースを扱うのに、OLE経由でADOを使う他、DBIを使うこともできる。 DBI経由はデータベースを変更しても接続文字列を変えるくらいで対応が出来きて便利だと思われる。

下の例の接続文字列は SQL server または MSDE のものだが、アクセスで hoge.mdb に接続するなら
dbi:ODBC:driver=Microsoft Access Driver (*.mdb);dbq=hoge.mdb という接続文字列を使えば良い。
use DBI;

# 接続文字列(SQL Server or MSDE の例)
$dataSource = "dbi:ODBC:".
    "driver={SQL Server};".
    "Server=(local);database=test;".
    "Trusted_Connection=yes;". # yesだとWindows認証
    "AutoTranslate=No;";
    
#データベースに接続
$user="tuser"; #ユーザ名
$pwd="tuser";  #パスワード
$dbh=DBI->connect($dataSource,$user,$pwd)
    or die $DBI::errstr;

# テーブル削除
$dbh->do("Drop table seito");

# テーブル作成
$dbh->do(
    "Create Table seito(id int, name varchar(30))"
) or die $DBI::errstr;

# データ挿入
$sth = $dbh->prepare(
    "INSERT INTO seito (id,name) VALUES (?,?)");
$sth->execute(11, "菅原 道真");
$sth->execute(12, "藤原 道長");

# データ読み出し
$ref=$dbh->selectall_arrayref("select * from seito");
for $x (@{$ref}){
	print join("/", @{$x},"\n");
}

# データベースから切断
$dbh->disconnect;


データベースを新規作成することは出来ないのかなあ?

投稿者 augustus : 2004年03月08日 19:53

トラックバック

このエントリーのトラックバックURL:
http://www.augustus.to/cgi-bin/blog/mt-tb.cgi/57

コメント

大変、役に立ちました。ありがとうございました。

投稿者 midori : 2006年05月10日 18:06

コメントしてください




保存しますか?