SQLserver に perl でアクセス
この間の
アクセスのデータベースを使った例と基本的に同じでよいのだが、接続文字列の書き方を忘れたときのためにメモを残しておく。
接続文字列中で
Data Source= のあとにはサーバ名を書く。ローカルのSQL server または MSDE を使うなら
Data Source=(local) と書ける。
Initial Catalog= のあとにはデータベース名を書く。
ユーザ名、パスワードは
user id=,
password=で指定する。もし、Windows認証を使うのなら、ユーザ名とパスワードの指定の替わりに、
Integrated Security=SSPI
あるいは
Trusted_Connection=yes
と書けばよい。
# SQLserver のデータベース操作の例
#
# SRV2003 という名のサーバ上の SQLserver の
# test という名のデータベースに接続し、
# seito というテーブルを作成し、データを追加し、
# データを読み出す。
use Win32::OLE;
$server="SRV2003";
$db="test";
$user="tuser";
$password="tuser";
# データベースへの接続
$objDB=Win32::OLE->new("ADODB.Connection");
$connStr="Provider=sqloledb;".
"Data Source=${server};".
"Initial Catalog=${db};".
"user id=${user};password=${password}";
$objDB->Open($connStr);
$objDB->{Errors}->{Count} and
die "cannot connect '$connStr'";
# テーブル作成
$objDB->Execute(
"Create Table seito (id int, name Char(20))" );
# データ挿入
$objDB->Execute(
"Insert into seito values (11,'蘇我 馬子')");
$objDB->Execute(
"Insert into seito values (12,'中臣 鎌子')");
# データ読み出し
$rs=Win32::OLE->new("ADODB.Recordset");
$rs->Open("select * from seito", $objDB);
while(!$rs->EOF and $rs->{RecordCount}!=0){
print "$rs->{Fields}->{id}->{Value}, ",
"$rs->{Fields}->{name}->{Value}\n";
$rs->MoveNext();
}
$rs->Close();
# 接続を閉じる
$objDB->Close();
$objDB=undef();
Posted by augustus at 2004年03月07日 11:58
| TrackBack
takeshiといいます。
以前、DBIは使っていたのですが
ADOは何が何だがさっぱり分かりません。
突然SQL serverを使うことになってしまい、
Perlでアクセスできないか、調べていたらここに行き着きました。そのまま使えたのでとても役立ちました!
ありがとうございます!