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