PerlからSQL Serverへアクセスする
PerlからSQL Serverへアクセスするプログラムの雛形サンプルを公開します。
『カスタマイズするポイント』を参考にして、お使い下さい。お役に立てれば幸です。
補足1:
以下のサンプルソースの接続認証は、WINDOWS認証設定になっています。
SQL Server認証設定するには、WINDOWS認証設定個所をコメントにし、SQL Server認証設定個所のコメントを外します。
補足2:
データ値を求める時の$rs->{Fields}->{id}->{Value}等は、idは各項目名になり、FieldsとValueは固定です。
# SQL Server のデータベースアクセスサンプル #[カスタマイズするポイント] #・SQL Serverのサーバー名を『localhost』を変更する。 #・DB名『test』を変更する。 #・テーブル名『test_table』を変更する。 #・項目名『idやname』を変更する。 #・SQL Server 認証設定の時のID『testid』を変更する。 #・SQL Server 認証設定の時のパスワード『testps』を変更する。 use strict; use Win32::OLE; # DBサーバー名とDB名設定 my $server = "localhost"; my $db = "test"; # WINDOWS 認証設定 my $connStr = "Provider=sqloledb;". "Data Source=$server;". "Initial Catalog=$db;". "Integrated Security=SSPI;"; # SQL Server 認証設定 #my $id = "testid"; #my $ps = "testps"; #my $connStr = "Provider=sqloledb;". # "Data Source=$server;". # "Initial Catalog=$db;". # "User ID=$id;". # "Password=$ps;"; # DB接続 my $objDB = Win32::OLE->new("ADODB.Connection"); $objDB->Open($connStr); $objDB->{Errors}->{Count} and die "cannot connect '$connStr'"; # テーブル作成 $objDB->Execute( "Create Table test_table (id int, name Char(20))" ); # データ挿入 $objDB->Execute( "Insert into test_table values (1,'ミスチル')"); $objDB->Execute( "Insert into test_table values (2,'中島美華')"); $objDB->Execute( "Insert into test_table values (3,'中島美華')"); # データ更新 $objDB->Execute( "Update test_table Set name = '中島美嘉' Where id = 2"); # データ削除 $objDB->Execute( "Delete From test_table Where id = 3"); # データ読み出し my $rs = Win32::OLE->new("ADODB.Recordset"); $rs->Open("select * from test_table", $objDB); while(!$rs->EOF and $rs->{RecordCount} != 0){ print "$rs->{Fields}->{id}->{Value}, ", "$rs->{Fields}->{name}->{Value}\n"; $rs->MoveNext(); } $rs->Close(); # DB切断 $objDB->Close();
参考:
本サンプルは、以下のページを大変参考にさせて頂きました。
http://www.augustus.to/blog/3128/archives/000046.html