| OLE によるAccessデータベースへのアクセス |
 |
- OLEモジュールを使用すれば、最も簡単にAccessのデータベース(*.mdb)を操作するころができます。
また、VBやVC でMicrosoft Jet を使用した経験の有る方は、
ほとんどのプロパティ、メソッドを使用できますので、より高度な操作が簡単に行えます。
Accessのデータベースにも直接接続しますので、ODBCのように前準備も必要なく、
動作も高速です。Windowsサーバのサーバソフトと、VB、VC によるクライアントソフトを開発する場合はお薦めです。
|
| Perl OLEモジュールのインストール |
 |
- 極端に古いActivePerlでない限り、OLEモジュールは標準でインストールされていますので、
改めてインストールする必要はありません。
#!/user/local/bin/perl
use Win32::OLE;
print "Content-type: text/plain\n\n";
exit;
|
|
これだけのコードのCGIを実行してエラーが出力されなけばOLEはインストール済みと言うことになりますので、
以下のモジュールインストールは飛ばしてください。
- エラーの出力された方はOLEをインストールします。
[スタート]メニューの「ファイル名を指定して実行」で、
とタイプしてDOSシェルを起動します。
C:\> ppm
PPM interractive shell (2.2.0) - type 'help' for available command
PPM> search OLE
PPM> install Win32::OLE
Install package 'Win32::OLE?' (y/N): y
|
ppm とタイプして、PPM コマンドを起動します。
search OLE で検索し、Win32::OLE が表示されれば、
install Win32:OLE でインストールしてください。
これでデータベースへのアクセスの準備は完了です。
あとは実際にインターフェースを作成してアクセスするだけです。
|
| Access(*.mdb)に接続インターフェースの作成 |
 |
- OLEによるAccessデータベースの操作は最も簡単で、最も高速に動作しますが、
Access独自のプロパティー、メソッドを使用しますのでコードの互換性は全くありません。
#!/usr/local/bin/perl
# OLEモジュールを読込む
use Win32::OLE;
print "Content-type: text/html\n\n";
print "<html>"
print "<body>"
# プロバイダと、接続するデータベース名を設定
$conn = "Provider=Microsoft.Jet.OLEDB.4.0;";
$conn .= "Data Source=zip.mdb;";
# データベースのオブジェクトを作成して接続
$db = Win32::OLE->new("ADODB.Connection");
$db->Open($conn);
# 既存のクエリーQueryZipから高知県を郵便番号順に取得
$rs = $db->Execute("SELECT * FROM QueryZip WHERE pre = 39 ORDER BY code");
# 取得したレコードセットの数だけループして表示
while (!$rs->EOF) {
print $rs->Fields('code')->Value, $rs->Fields('name')->Value, $rs->Fields('citys')->Value," \n";
$rs->MoveNext;
}
# レコードセットを閉じる
$rs->Close();
# データベースを閉じる
$db->Close();
print "</body></html>";
exit;
|
|
OLE接続では、Jet特有のメソッドMove、MoveFirst、MoveNext、MoveLast、MovePreviousで
レコードセット内を自由に移動する事が可能です。
|