ちょっと探してしまったので、ここにメモります。
use strict; use warnings; use utf8; use Encode; use Win32::OLE; use DBI; # BEGIN variable my $FN = 'sample.mdb'; # END variable if (-e $FN) { unlink -e $FN or die; } my $dsn = "Provider=Microsoft.Jet.OLEDB.4.0;"; $dsn .= "Data Source=$FN;"; my $cat = Win32::OLE->new("ADOX.Catalog"); $cat->Create($dsn) or die; $cat->Close(); my $dbh = DBI->connect("dbi:ADO:$dsn") or die $DBI::errstr; $dbh->do( "Create Table song(id int, artist varchar(255), title varchar(255))" ) or die $DBI::errstr; my $sth = $dbh->prepare("INSERT INTO song(id,artist,title) VALUES (?,?,?)"); $sth->execute(1, "The Stalin", encode('cp932', 'ロマンチスト')); $sth->execute(2, "INU", encode('cp932', 'メシ喰うな')); $dbh->disconnect;
おしまい
DBIx::Class::Loader::ADOなんてのもありますな(・∀・)