Hi,
I receive the error:

  Can't call method "execute" on an undefined value at
C:\sambar50\cgi-bin\dbi_demo.cgi line 71.

Here is the code:

#!c:\sambar50\perl\bin\perl.exe

use DBI;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

$dbName     = "MyCompany";
$dbDriver   = "ODBC";
$dbUserName = "";
$dbPassword = "";

$dataIn       = new CGI;
$dataIn->header();
$requestType  = $dataIn->param('requestType');
$sql  = $dataIn->param('sql');

if ($sql eq "")
        {
        &printSearchForm();
        exit;
        }
else
        {
        $dbh = &connectToDB();
        $dataObject = executeSQLStatement($sql);
        @dbRows = &getDBRows($dataObject);
        if ($sql =~ /^SELECT/i)
                {
                print qq!
                <HTML>
                <HEAD>
                <TITLE>SQL Statement results</TITLE>
                </HEAD>
                <BODY BGCOLOR = "#FFFFFF" TEXT = "#000000">
                <CENTER>
                <TABLE BORDER = "1">!;
                foreach $rowReference (@dbRows)
                        {
                        foreach $columnReference (@$rowReference)
                                {
                                print qq!<TR>!;
                                foreach $column (@$columnReference)
                                        {
                                        print qq!<TD>$column</TD>\n!;
                                        }
                                print qq!</TR>!;
                                }
                        }
                print qq!
                </TABLE>
                </CENTER>
                </BODY>
                </HTML>!;
                exit;
                }
        else
                {
                print "Your SQL Query has been processed, please hit the back button 
and
submit a SELECT to see the changes!";
                }
        }

sub connectToDB
        {
        return (DBI->connect($dbName, $dbUserName, $dbPassword, $dbDriver));
        }

sub executeSQLStatement
        {
        my ($sql) = shift;
        $dataObject = $dbh->prepare($sql);
        $dataObject->execute();           ############# LINE 71################
        return $dataObject;
        }

sub getDBRows
        {
        my ($dataObject) = shift;
        return $dataObject->fetchall_arrayref();
        }

sub printSearchForm
        {
        print qq!
        <HTML>
        <HEAD>
        <TITLE>Enter SQL</TITLE>
        </HEAD>
        <BODY BGCOLOR = "#FFFFFF" TEXT = "#000000">
        <FORM METHOD = "POST" ACTION = "dbi_demo.cgi">
        <TABLE BORDER = "1">
        <TR>
        <TH>Enter SQL Query</TH>
        <TD><INPUT TYPE = "TEXT" SIZE = "40" NAME = "sql"></TD>
        <TD><INPUT TYPE = "SUBMIT" NAME = "requestType" VALUE = "Submit SQL"></TD>
        </TR>
        </TABLE>
        </FORM>
        </BGODY>
        </HTML>!;
        }
Any help would be appreciated.

Thanks in advance,
Chris

_______________________________________________
Perl-Win32-Web mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-web

Reply via email to