perl读取数据库遇到字数限制问题(已解决,谢谢各位朋友尤其是cobrawgl)

perl读取数据库遇到字数限制问题(已解决,谢谢各位朋友尤其是cobrawgl)

环境:

perl读取access数据库

使用DBI建立连接:

my $DSN = "driver=Microsoft Access Driver (*.mdb);dbq=d:\\jk\\test.mdb";
my $dbh = DBI->connect("dbi:ODBCDSN",'','ytwk')
or die "Can't connect to Database: $DBI::errstr";

读取记录:

my $sth = $dbh->prepare( q{
          SELECT * FROM testDB
}) or die "Can't prepare statement: $DBI::errstr";
my $rc = $sth->execute
or die "Can't execute statement: $DBI::errstr";

显示出前三列:

print "Query will return $sth->{NUM_OF_FIELDS} fields.\n\n";

print "Field names: @{ $sth->{NAME} } \n";

my  $ary_ref;

open (FILE1, ">a.txt";

while ( $ary_ref = $sth->fetchrow_arrayref) {

print FILE1 ("$ary_ref->[0] : $ary_ref->[1] : $ary_ref->[2] \n";
print FILE1 ("$ary_ref->[0] \n";
}


当运行的时候报告错误:

DBD::ODBC::st fetchrow_arrayref failed: [Microsoft][ODBC Microsoft Access Driver
]字符串数据,右截断 在列号 3 (CopyDetail) (SQL-01004) at D:\jk\test1.pl line 31.

[Microsoft][ODBC Microsoft Access Driver]字符串数据,右截断 在列号 3 (CopyDetail
) (SQL-01004) at D:\jk\test1.pl line 39.


我检查后发现,是由于第三列内容包含windows路径的"\"导致的,当运行到 while ( $ary_ref = $sth->fetchrow_arrayref )的时候,就开始报告错误

请问各位,我应该怎么办啊。

跟路径没关系
嗯??不是"\"的原因吗?
哦,确实不是"\"的问题,是数据库中有汉字的缘故,是字符串太长了导致了,超过83个字符的话就会报错,晕倒,咋办呢?

my $dbh = DBI->connect($dsn, '', $passwd) or die;
$dbh->{LongReadLen}  = 1000000;
$dbh->{LongTruncOk}  = 1;

到 DBI 的文档中查查这两个参数,这个设置队我那个数据库来说够了
非常非常的,万分万分的感谢,我能给你分吗?

QUOTE:
原帖由 cobrawgl 于 2009-1-5 10:40 发表
my $dbh = DBI->connect($dsn, '', $passwd) or die;
$dbh->{LongReadLen}  = 1000000;
$dbh->{LongTruncOk}  = 1;

到 DBI 的文档中查查这两个参数,这个设置队我那个数据库来说够了

给分可以啊
没找着从哪儿给,给你鲜花吧,才看到这帖子就你回复了,我还谢谢各位朋友呢,晕倒