Simon, Can you send me the foxpro database or a sample. This looks like a different problem than the one before, where it would "core dump"
Thanks, Jeff > -----Original Message----- > From: Simon Oliver [mailto:[EMAIL PROTECTED]] > Sent: Thursday, June 27, 2002 5:18 AM > To: [EMAIL PROTECTED] > Cc: Thomas A. Lowery; Jeff Urlwin > Subject: [Fwd: DBD::ADO and DBD::ODBC with foxpro driver problem] > > > I decided to forward this to dbi-dev. I realise this is probably a > problem with the FoxPro ODBC driver but I need a fix. Please help. > > -- > Simon Oliver > > -------- Original Message -------- > Subject: DBD::ADO and DBD::ODBC with foxpro driver problem > Date: Tue, 25 Jun 2002 16:31:09 +0100 > From: Simon Oliver <[EMAIL PROTECTED]> > Organization: UMIST > To: [EMAIL PROTECTED] > > I need to query a foxpro database (3rd party software). > > In the past I have had no success with DBD::ODBC accessing foxpro > databases (causes an application error). So I used DBD::ADO instead. > However, with the latest DBD::ADO (2.5) the script dies during connect(). > > Here's the snippet I'm using to connect: > > DBI->trace(1); > my $dsn = qq(Driver={Microsoft Visual FoxPro Driver}; > SourceType=DBF;SourceDB=$dir); > > my $attr = { > PrintError=>0, > RaiseError=>1, > LongTruncOk=>1, > ChopBlanks=>1 > }; > > my $dbh = DBI->connect("dbi:ADO:$dsn", '', '', $attr); > > Below are the traces using DBD::ADO and DBD::ODBC - the DBD::ADO error > looks like a problem with autocommit. > > -- > Simon Oliver > > TRACE using DBD::ADO: > DBI 1.28-nothread dispatch trace level set to 1 > -> DBI->connect(dbi:ADO:Driver={Microsoft Visual FoxPro > Driver};SourceType=D > BF;SourceDB=\\FS1\PCOUNTER\DATA, , ****, HASH(0x1abef9c)) > -> DBI->install_driver(ADO) for MSWin32 perl=5.006001 pid=2748 ruid=0 > euid=0 > > install_driver: DBD::ADO version 2.5 loaded from > C:/Perl/site/lib/DBD/ADO > .pm > <- install_driver= DBI::dr=HASH(0x1cbc38c) > ->ADO Connection: ->> Open ADO connection using Driver={Microsoft Visual > FoxPro > Driver};SourceType=DBF;SourceDB=\\FS1\PCOUNTER\DATA > ->> Transaction support: 1 Transactions can only contain Data Manipulation > (DML) > statements. DDL statements within a trnsaction cause an error. > <- connect('Driver={Microsoft Visual FoxPro > Driver};SourceType=DBF;SourceDB= > \\FS1\PCOUNTER\DATA' '' ...)= DBI::db=HASH(0x2b40204) at DBI.pm line 490 > <- STORE('RaiseError' 1)= 1 at DBI.pm line 532 > <- STORE('PrintError' 0)= 1 at DBI.pm line 532 > 1 <- FETCH('AutoCommit')= 1 ('AutoCommit' from cache) at ADO.pm line > 1661 > <- STORE('AutoCommit' 1)= 1 at DBI.pm line 532 > 1 <- FETCH('Warn')= 0 ('Warn' from cache) at ADO.pm line 1645 > !! ERROR: -2147352569 undef > <- STORE('ChopBlanks' 1)= 1 at DBI.pm line 535 > DBD::ADO::db STORE failed: at C:/Perl/site/lib/DBI.pm line 535. > Connection open, destroy at credit.pl line 0 > <- State: (1) > <- modified connection Attributes 0 > <- AutoCommit -> 1 Provider Support -> 1 Comments -> Transactions can > only cont > ain Data Manipulation (DML) statements. DDL statements within a > trnsaction caus > e an error. > <- DESTROY= undef > <- disconnect_all= undef at DBI.pm line 552 > <- DESTROY= '' during global destruction > > TRACE using DBD::ODBC: > DBI 1.28-nothread dispatch trace level set to 1 > -> DBI->connect(dbi:ODBC:Driver={Microsoft Visual FoxPro > Driver};SourceType= > DBF;SourceDB=\\FS1\PCOUNTER\DATA, , ****, HASH(0x1abef9c)) > -> DBI->install_driver(ODBC) for MSWin32 perl=5.006001 pid=2692 ruid=0 > euid= > 0 > install_driver: DBD::ODBC version 0.41 loaded from > C:/Perl/site/lib/DBD/O > DBC.pm > <- install_driver= DBI::dr=HASH(0x1cbc38c) > <- connect('Driver={Microsoft Visual FoxPro > Driver};SourceType=DBF;SourceDB= > \\FS1\PCOUNTER\DATA' '' ...)= DBI::db=HASH(0x1c388e8) at DBI.pm line 490 > <- STORE('RaiseError' 1)= 1 at DBI.pm line 532 > <- STORE('PrintError' 0)= 1 at DBI.pm line 532 > <- STORE('AutoCommit' 1)= 1 at DBI.pm line 532 > <- STORE('ChopBlanks' 1)= 1 at DBI.pm line 535 > <- STORE('LongTruncOk' 1)= 1 at DBI.pm line 535 > <- connect= DBI::db=HASH(0x1c388e8) > <- prepare('SELECT id, balance FROM UMIST-BI')= > DBI::st=HASH(0x1c38900) at c > redit.pl line 40 > !! ERROR: -1 '[Microsoft][ODBC Driver Manager] Program type out of > range (SQ > L-S1003)(DBD: describe/SQLBindCol err=-1)' > <- execute= undef > D:\PCOUNTER>perl -MDBD::ADO -e"print $DBD::ADO::VERSION" > 2.5 >