PerlでMicrosoft Accessのデータを作成&出力

| コメント(2)

ちょっと探してしまったので、ここにメモります。

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なんてのもありますな(・∀・)

コメント(2)

サンプルコード
 $cat->Create($dsn) or die;

Died at D:\写真集\画蔵閲覧\gazo-bin\gazo\cgi\sql.pl line 22.
が発生です
環境はwin10です

コメントする