A port of my Python DBI program to Perl. Note that you have to install package DBD-ODBC for the ODBC driver.
use warnings;
use strict;
use DBI;
use constant MDB_PATH => '<path>';
my $dbh = DBI->connect('DBI:ODBC:DRIVER=Microsoft Access Driver (*.mdb);Dbq=' . MDB_PATH);
my $sth = $dbh->prepare(
"SELECT name FROM MSYSOBJECTS WHERE name NOT LIKE 'MSYS%' AND type = 1");
$sth->execute();
my $ref = $sth->fetchall_arrayref();
for my $row ( @{$ref} ) {
my $table_name = @$row[0];
my $sth = $dbh->prepare("SELECT COUNT(*) FROM [$table_name]");
$sth->execute();
my @data = $sth->fetchrow_array();
if ($data[0] == 0) {
print "$table_name is empty\n";
}
}
$dbh->disconnect();
See Also
PS
2008-08-08: Replaced sprintf("SELECT COUNT(*) FROM [%s]", $table_name) with "SELECT COUNT(*) FROM [$table_name]" since Perl can evaluate variables in a string.
Added empty parentheses when calling functions to be consistent.
No comments:
Post a Comment