in reply to problems with ODBC...

Your prepare statement is failing for some reason, and hence returning an undef $sth Make your connect line the following, and it'll tell you what's wrong:

$dbh=DBI->connect("dbi:ODBC:'driver=Microsoft Access Driver (*.mdb); d +bq=test.mdb'", '', '', {RaiseError=>1} );

perl -pe '"I lo*`+$^X$\"$]!$/"=~m%(.*)%s;$_=$1;y^`+*^e v^#$&V"+@( NO CARRIER'

Replies are listed 'Best First'.
Re: Re: problems with ODBC...
by nickel (Initiate) on Jan 29, 2002 at 03:03 UTC
    now im getting this error
    DBI->connect('driver=Microsoft Access Driver (*.mdb); dbq=test.mdb') f +ailed: [Microsoft][ODBC Driver Manager] Invalid string or buffer leng +th (SQL-S1090)(DBD: db_login/SQLConnect err=-1) at c:\foxserv\apache\ +cgi-bin\access.pl line 7
    i still dont know what this means
      Sounds like your connect string isn't correct. I found  $dbh = DBI->connect("DBI:ODBC:$odbc", $user, $pass); where $odbc is the name given to a system DSN that you set through the control panel. $user = username $pass = password - recommended in a reply elsewhere (credit to Ian Summers). If that doesn't work I'd suggest looking up docs on DBI on the connect string.

      'Fect
        well, ive modified my code slightly, and this is the error that im getting now
        Can't locate object method "execute" via package "DBI::db" (perhaps yo +u forgot to load "DBI::db"?) at c:\foxserv\apache\cgi-bin\access2.pl +line 12.
        and heres what my code looks like
        #!C:/Perl/bin/perl.exe use CGI::Carp "fatalsToBrowser"; use CGI qw(:standard); use DBI; print header(); my $DSN = 'driver=Microsoft Access Driver (*.mdb);dbq=C:/FoxServ/Apach +e/cgi-bin/test.mdb'; my $dbh = DBI->connect("dbi:ODBC:$DSN", '','') or die "$DBI::errstr\n"; $dbh->execute(); @information = $dbh->fetchrow_array; foreach $test (@information){ print $test; print "\n<br>\n"; } $dbh->disconnect; $dbh->finish;
        what do i do?
Re: Re: problems with ODBC...
by nickel (Initiate) on Jan 29, 2002 at 10:25 UTC
    well, ive modified my code slightly, and this is the error that im getting now
    Can't locate object method "execute" via package "DBI::db" (perhaps yo +u forgot to load "DBI::db"?) at c:\foxserv\apache\cgi-bin\access2.pl +l +ine 12.
    and heres what my code looks like
    #!C:/Perl/bin/perl.exe use CGI::Carp "fatalsToBrowser"; use CGI qw(:standard); use DBI; print header(); my $DSN = 'driver=Microsoft Access Driver (*.mdb);dbq=C:/FoxServ/Apach +e/cgi-bin/test.mdb'; my $dbh = DBI->connect("dbi:ODBC:$DSN", '','') or die "$DBI::errstr\n"; $dbh->execute(); @information = $dbh->fetchrow_array; foreach $test (@information){ print $test; print "\n<br>\n"; } $dbh->disconnect; $dbh->finish;
    perhaps someone could email me? ryan@lonegamers.com what do i do?