64位perl是否包含所有32位perl模块?

64位perl是否包含所有32位perl模块?,perl,ms-access-2007,Perl,Ms Access 2007,我已经安装了64位perl的64位操作系统。在MS Access 2007(MS Access为32位)中,我被赋予了从表中检索数据的任务。我试图执行的程序代码弹出一个错误,上面写着 DBI connect('Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\test\INSTRUCTIONS.mdb','',...) failed: [Microsoft][ODBC Driver Manager] Data source name

我已经安装了64位perl的64位操作系统。在MS Access 2007(MS Access为32位)中,我被赋予了从表中检索数据的任务。我试图执行的程序代码弹出一个错误,上面写着

DBI connect('Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\test\INSTRUCTIONS.mdb','',...) failed: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (SQL-IM002) at C:/test/connectaccess.pl line 7.
cannot connect to DB at C:/test/connectaccess.pl line 7.  
代码是

#!perl  
use strict;  
use warnings;  
use DBI;  
my $DBFile = q(C:\test\INSTRUCTIONS.mdb);   
my $dbh = DBI->connect("dbi:ODBC:Driver={Microsoft Access Driver (*.mdb)};DBQ=$DBFile",'','') or die("cannot connect to DB");  
my $SQLquery = "SELECT * FROM IndemDate";  
my $sth = $dbh->prepare($SQLquery);
my $rc = $sth->execute;
while (my $href = $sth->fetchrow_hashref) {
print "memberID: " . $$href{"memberID"} . "\n";
print "memberName: " . $$href{"memberName"} . "\n";
print "\n";
}  

所以我想知道64位perl是否包含所有32位模块。。。或者与ms access的连接是否存在任何错误。请指导我。

您在这里没有使用任何与访问相关的模块。不存在64/32位问题。您使用的是ODBC驱动程序,它是操作系统的一部分,而不是Perl。为文件设置系统ODBC数据源。一旦设置了此项,您的代码应采用一般形式:

use strict;
use warnings;

use DBI;

#open connection to Access database
$dbh = DBI->connect('dbi:ODBC:ODBCNameGoesHere');

如果我用32位perl执行程序,程序运行良好。

但是我在程序中提到了
Driver={Microsoft Access Driver(*.mdb)
,这还不够吗?@Programmer change
die(“无法连接到DB”);
die(“无法连接到DB:$!);
找出它不工作的原因,但是我在我的程序中提到了
驱动程序={Microsoft Access驱动程序(*.mdb)
这还不够吗?@Dr.avalanche这是我得到的
DBI connect('Driver={Microsoft Access驱动程序(*.mdb,)};DBQ=C:\test INSTRUCTIONS.mdb','','',失败:[Microsoft][ODBC驱动程序管理器]在C:/test/connectaccess.pl第7行未找到数据源名称,也未指定默认驱动程序(SQL-IM002)。无法连接到DB:at C:/test/connectaccess.pl第7行。
这是我得到的
DBI connect('driver={Microsoft Access driver(*.mdb,)};DBQ=C:\test INSTRUCTIONS.mdb','',''…)失败:[Microsoft][ODBC driver Manager]在C:/test/connectaccess.pl第7行未找到数据源名称,也未指定默认驱动程序(SQL-IM002)。无法连接到DB:at C:/test/connectaccess.pl第7行。