Re: Can't call method "Sql"... need help
- From: "perlguru" <manojkumargupta@xxxxxxxxx>
- Date: 28 Feb 2007 03:53:13 -0800
On Feb 28, 4:13 pm, sud...@xxxxxxxxx wrote:
hello,
I have a problem CGI script. I am really sorry, this looks quite
big...
I created a package pkg::fetch_history.pm and placed it in c:\Perl
\lib. Then I created a perl file to run from the commad promt. the
program executed well without fail. The code is as follows,
#!C:\Perl\bin\perl.exe
use pkg::fetch_history;
@dates = pkg::fetch_history::get_Dates();
foreach $d (@dates)
{ print "\n",$d; }
the data base exists locally.
Then I created cgi script to populate the values into combo box, it
says
Can't call method "Sql" on an undefined value at C:/Perl/lib/pkg/
fetch_history.pm line 20.
I am not sure why is this. Below is the fetch_history.pm and
combobox.cgi script.
-----------------------------------------------------------------------------------------------
#!C:\Perl\bin\perl.exe
# this is fetch_history.pm
package pkg::fetch_history;
use strict;
use Win32::ODBC;
my $db = new Win32::ODBC('ServerStatistics'); #ODBC driver object
#if (!$db)
#{
# print "Database could not be found\n";
#}
sub get_Dates
{
my $q = "select distinct(build_date) from wdf_history order by
build_date";
$db->Sql($q);
my @dates;
push(@dates, $db->Data()) while($db->FetchRow);
return @dates;}
---------------------------------------------------------------------
#!C:\Perl\bin\perl.exe
use CGI::Carp qw(fatalsToBrowser);
use CGI;
use pkg::fetch_history;
$cgi = new CGI;
print $cgi->header;
@dates = pkg::fetch_history::get_Dates();
print "here is the dates value",@dates;
print <<ENDHTML;
<html>
<head><title> Server statistics </title></head>
<body>
<select name="menu">
ENDHTML
foreach my $d(@datest)
{
print <<ENDHTML;
<option value="$d" selected>(please select:)</option>
<option value="$d">$d</option>
ENDHTML
}
------------------------------------------------------------------
Am I wrong some where?
Thank you,
Regards,
kath.
If this script runs fine from command prompt, ..... then I think you
should check with permission.
I see that you are not catching error at the time of opening
connection to database.
While executing script from web, it executes with lower permission,
and it may not be allowed to connect to database.
Try catching error at the time of opening connection to database...
.
- References:
- Can't call method "Sql"... need help
- From: sudhih
- Can't call method "Sql"... need help
- Prev by Date: Re: perl bug with references
- Next by Date: Apache::DBI with mod_perl under load
- Previous by thread: Can't call method "Sql"... need help
- Next by thread: Apache::DBI with mod_perl under load
- Index(es):
Relevant Pages
|