我必须将我的perlscripts迁移到新机器,但DBD :: CSV不会像我期望的那样工作。
我为MSWin32-x86-multi-thread构建了ActiveState perl 5,版本16,subversion 3(v5.16.3)
DBD-CSV是版本0.41,每次尝试都会导致:
#################################################################
DBD::CSV::db do failed:
Execution ERROR: -d D:\TEST/D:\TEST: No such file or directory at D:/Programme/Perl/site/lib/DBI/DBD/SqlEngine.pm line 1503.
called from D:\TEST\CSVTest.pl at 7.
#################################################################
即使是最简单的创建TestTable
#################################################################
use DBI;
$dbh = DBI->connect ("dbi:CSV:");
my $table ="TestTable";
$dbh->do ("CREATE TABLE $table (id INTEGER, name CHAR (64))");
#################################################################
有什么建议吗?
不是真正的答案,但是评论过多,未注释的$ DBDIR就是我兴奋的工作方式。我试过了$ DBDIR的所有注释版本,但都在脚本(C:\ Temp)所在的目录中创建了一个foo.csv。我想使用其他一些目录,因为脚本位于任何消息中?
use DBI;
my $DBDIR='C:\Temp\CSV-DB';
# my $DBDIR="C:\\Temp\\CSV-DB";
# my $DBDIR='C:\Temp\CSV-DB\\';
# my $DBDIR='..\CSV-DB';
# my $DBDIR="..\\CSV-DB";
# my $DBDIR='CSV-DB';
# my $DBDIR='\CSV-DB';
# my $DBDIR='\\CSV-DB';
# my $DBDIR='.\CSV-DB';
# my $DBDIR='/CSV-DB';
# my $DBDIR='./CSV-DB';
$dbh = DBI->connect ("dbi:CSV:", undef, undef, {
f_dir => [$DBDIR],
#f_dir_search => [$DBDIR],
f_ext => ".csv/r",
RaiseError => 1,
}) or die "Cannot connect: $DBI::errstr";
# Simple statements
$dbh->do ("CREATE TABLE foo (id INTEGER, name CHAR (10))");
##############################################################
答案 0 :(得分:0)
我的Windows PC上出现了这个问题。
我发现当DBI不是第一个使用的模块时就会发生这种情况。 通过“使用DBI;”作为第一个模块,问题已经消失。 我没有试图确定究竟是哪个模块导致了问题。我正在使用CGI,Archive :: Zip,POSIX等。