如何使用SQL在MS Access数据库中“显示表”?
我基础上,这个问题的答案Access get all tables我的代码,但我得到以下错误:如何使用SQL在MS Access数据库中“显示表”?
DBD::ODBC::st execute failed: [Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read permission on 'MSysObjects'. (SQL-42000) at direct.pl line 22.
[Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read permission on 'MSysObjects'. (SQL-42000) at direct.pl line 22.
这里是我到目前为止已经试过。我评论了我的第一次尝试。目前的尝试是基于SELECT "Table" AS [Table],旁观者在他的回答中提到question。无论哪种方式我都会得到同样的错误这里是我的代码,完整的:
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect('DBI:ODBC:MutantDB','','')
or die 'could not connect to database' . DBI::errstr;
my $sth = $dbh->prepare('SELECT "Table" AS [Table],
MSysObjects.Name,
MSysObjects.Type
FROM MSysObjects
WHERE MSysObjects.Type =1
Or MSysObjects.Type=6
ORDER BY MSysObjects.Name;')
or die 'could not prepare statement' . $dbh->errstr();
# my $sth = $dbh->prepare('SELECT MSysObjects.*, MSysObjects.Type
# FROM MSysObjects
# WHERE (((MSysObjects.Type)=1)) OR (((MSysObjects.Type)=6));'
#) or die 'could not prepare statment' . $dbh->errstr();
$sth->execute() or die $sth->errstr();
while(my ($name, $type) = $sth->fetchrow()){
print "name: $name \t type: $type \n";
}
下面是更好的DBD链接:ADO http://search.cpan.org/dist/DBD-ADO/lib/DBD/ADO.pm – daotoad 2010-02-11 16:05:10
谢谢。从SinanÜnür对我的帖子的编辑之一,我了解到它可以更简洁。使用http://search.cpan.org/perldoc?随后是感兴趣的模块,例如http://search.cpan.org/perldoc?DBD::ADO – 2010-02-11 16:45:07
难道你用模式更好吗? http://www.cpan.org/authors/id/T/TL/TLOWERY/DBD-ADO-2.1.readme – Fionnuala 2010-02-11 14:22:20
谢谢!发布作为答案,我会接受它。 – 2010-02-11 14:47:19