Hi. Long time to see you :-).

----- Original Message -----
>Subject: Getting all names in mdb
>Date: Fri, 7 Dec 2007 11:19:05 +0900
>From: 田口 浩 <[EMAIL PROTECTED]>
>To: <dbi-users@perl.org>
>
>
>Hello,
>
>I'm using .mdb file with DBI/DBD::ODBC.
>
>my $dbh = DBI->connect("dbi:ODBC:test", "", "",
>   {RaiseError => 1, AutoCommit => 0, LongReadLen => 409600})
>   or die "$DBI::errstr";
>
>Anyone will teach me how to get all names of tables
>(in test.mdb)?
If you want to use ODBC, you can get them from "MSysObjects" table.
But probably you should set reading previledges for that mdb files.

cf. Sorry these are in Japanese 
 http://www.accessclub.jp/bbs6/0003/das426.html
 http://homepage1.nifty.com/kojama/works/rdbms/jet/dbinfo.html#term04
 http://www.nihon-eng.co.jp/c-break/technote/tomcat/TCAT41_DB.htm

# I've set them with Security Wizard

ex.
use strict;
use DBI;
my $sDsn = 'driver=Microsoft Access Driver (*.mdb);dbq=c:\test.mdb;'.
           'SystemDB=c:\security.mdw';
my $hDb = DBI->connect('dbi:ODBC:'. $sDsn, 'dbdtest', 'dbdtest', 
{RaiseError=>1, AutoCommit=> 1});
my $hSt = $hDb->prepare(
   q{SELECT name FROM MSysObjects WHERE type=1 AND name NOT LIKE 'MSys%'}
);
$hSt->execute();
while(my $raD = $hSt->fetchrow_arrayref())
{
    print join("\t", @$raD) . "\n";
}
$hSt->finish();
$hDb->disconnect();

Reply via email to