Perl/ActivePerl For UNIX/Linux/Windows
 
TryThe Homepage
初めてのCGI
CGI 研究室
ダイナミックCGI
ダウンロード
サービス
サーバ構築(Windows)
データベースアクセス
有料サービス
FAQ
お問い合わせ
このページを印刷
Access(*.mdb)に接続
  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をインストールします。
    [スタート]メニューの「ファイル名を指定して実行」で、
    command
    とタイプして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で レコードセット内を自由に移動する事が可能です。
Copyright 2004 Terra. All rights reserved. No reproduction or republication without written