我正在尝试使用perl连接到访问2007数据库。下面是我尝试执行的代码
use DBI;
$path='T:\a\abc.accdb';
$datasource = "driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=$path";
$dbh = DBI->connect("dbi:ODBC:$datasource", '', '') || die "Error connecting: $!";
$query="select name from receiver";
$exe=$dbh->prepare($query) or die "cannot prepare";
$exe->execute or die "cannot execute";
$a=$exe->fetchall_arrayref();
foreach $aa(@{$a})
{
print @$aa;
}
但执行失败并出现以下错误
DBI connect('driver={Microsoft Access Driver(*.mdb,*.accdb)};DBQ=T:\a\abc.accdb','',...)failed: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (SQL-IM002) at test.pl line 5.
Error connecting: at test.pl line 5.
有人可以指导我如何解决这个问题。
答案 0 :(得分:1)
您的驱动程序名称缺少空格。 ODBC对此非常挑剔。尝试
$datasource = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=$path";
此外,NAME
是Access SQL中的保留字,因此您可能需要使用
$query="select [name] from receiver";
答案 1 :(得分:0)
我对DBI的经验:ODBC有些过时,但我建议如下: