代码之家  ›  专栏  ›  技术社区  ›  Christopher Bottoms zerkms

如何使用SQL在MS Access数据库中“显示表”?

  •  1
  • Christopher Bottoms zerkms  · 技术社区  · 16 年前

    我的代码基于问题的答案 Access get all tables ,但出现以下错误:

    dbd::odbc::st执行失败: [Microsoft][ODBC Microsoft访问 无法读取驱动器]记录;否 对“msysobjects”的读取权限。 (SQL-42000)在direct.pl第22行。

    [Microsoft][ODBC Microsoft访问 无法读取驱动器]记录;否 对“msysobjects”的读取权限。 (SQL-42000)在direct.pl第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";
    }
    
    1 回复  |  直到 16 年前
    推荐文章