Perl DBD :: CSV Windows上没有此类文件或目录

时间:2014-07-08 11:56:28

标签: windows perl csv dbi

我必须将我的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))");
##############################################################

1 个答案:

答案 0 :(得分:0)

我的Windows PC上出现了这个问题。

我发现当DBI不是第一个使用的模块时就会发生这种情况。 通过“使用DBI;”作为第一个模块,问题已经消失。 我没有试图确定究竟是哪个模块导致了问题。我正在使用CGI,Archive :: Zip,POSIX等。