作者: KAWAI,Takanori
日時: 2003/6/10(22:16)
川合孝典です。

----- Original Message ----- 
From: "Zazel" <zazel@...>
To: <TSfree@...>
Sent: Tuesday, June 10, 2003 7:48 PM
Subject: [TSfree:461] Re: Accessへのアクセス


> Zazelです。
>
> >  Accessのデータを加工したいのですが、文字列データを読み出して一部置換処
> > 理して戻したいのです。
> >
> >  このような用途には何を使うのが便利でしょう。
>
> 試したことはないけど、Perlでuse OLE または Rubyでrequire "win32ole"。
Win32::OLEでDAOやADOを使ってアクセスすることもできますが
- DBI + DBD::ODBC
- Win32::ODBC
のほうが一般的でしょう。
#一応全部、本のネタでやったことがありますが

Windows以外であればMDBTOOLSあたりでテキストに落として
加工するとか(^^;;;

[サンプル(DBI、Win32::ODBC)]
use strict;
use DBI;
use Win32::ODBC;

my $DSN =
  'driver=Microsoft Access Driver (*.mdb);dbq=c:\\temp\\test.mdb';
my $hDb = DBI->connect("dbi:ODBC:$DSN", '','',
            {RaiseError=>1, AutoCommit=>1}) or die "$DBI::errstr\n";
my $hSt = $hDb->prepare('SELECT * FROM tblTest');
$hSt->execute();
while(my $raData = $hSt->fetchrow_arrayref()) {
   print join(':', @$raData), "\n";
}
$hSt->finish();
$hDb->disconnect;

# 2. ODBC オブジェクトの作成(接続)
print "===========Win32::ODBC=================\n";
use Win32::ODBC;
my $hODBC = new Win32::ODBC($DSN,
                            Win32::ODBC->SQL_AUTOCOMMIT,
                            Win32::ODBC->SQL_AUTOCOMMIT_OFF) ||
    die(Win32::ODBC::Error());
$hODBC->Sql('SELECT * FROM tblTest');
while ($hODBC->FetchRow()){
    print join(':', $hODBC->Data()), "\n";
}
$hODBC->Close();

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr@... GCD00051@...
   http://member.nifty.ne.jp/hippo2000、http://www.hippo2000.info/
perldocの日本語情報ならperldocjp:翻訳してみませんか?
  http://perldocjp.sourceforge.jp/
===================================================