in reply to Re: Table creation
in thread Table creation

I tried removing that before and it gave me the error message:
Can't call method "do" on an undefined value at ....

Replies are listed 'Best First'.
Re: Re: Re: Table creation
by Roger (Parson) on Nov 25, 2003 at 01:00 UTC
    my $dbh->do(...) Aha... You didn't open your database handle, did you? ;-)

    You have to make sure there is a database connection before issuing SQL commands. If you do not call DBI->connect, your database handle will be undefined. In your case, you have created a new lexical with my $dbh in your second part of the code, which will be undefined unless you call the connect, or use the existing handle by dropping that my in front of $dbh->do(...) (assuming that you have dropped that first $dbh->disconnect of course). Here's an example on how to connect to the database using DBI and DBD.
    #!/usr/bin/perl -w use strict; use DBI; use DBD::Sybase; my $dbh = DBI->connect("dbi:Sybase:server=XXXX;database=XXXX", "USER", +"PASSWD") or die "Failed to connect to the database!"; my $sth = $dbh->prepare( qq{ SQL statement } ); $sth->execute(); my @column_headings = @{$sth->{NAME}}; while (my @row = $sth->fetchrow()) { # Data elements $row[0] ... $row[-1] ... } $sth->finish; $dbh->disconnect;