Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > Can't call method "Sql"... need help

Reply
Thread Tools

Can't call method "Sql"... need help

 
 
sudhih@gmail.com
Guest
Posts: n/a
 
      02-28-2007
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.

 
Reply With Quote
 
 
 
 
perlguru
Guest
Posts: n/a
 
      02-28-2007
On Feb 28, 4:13 pm, (E-Mail Removed) 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...


 
Reply With Quote
 
 
 
 
kath
Guest
Posts: n/a
 
      03-01-2007
On Feb 28, 4:53 pm, "perlguru" <(E-Mail Removed)> wrote:
> On Feb 28, 4:13 pm, (E-Mail Removed) 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...


Hi, thanks for the reply. you are right. The connection to database
was not happening when run I from browser. But the same was working
fine when I run in command prompt. Me and my friend figured it out
that there wasn't establishing of connection to database was
happening.

Why only in the browser?

Then later one thing flashed, that I was using local DSN(user DSN) to
connect to database. Then I tried creating the System DSN tried to
run, it was working.

Any way, thanks a lot.


Regards,
kath.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Call method from FormView_Inserting method sck10 ASP .Net 0 03-12-2007 04:30 PM
MixIn method to call the method it overrides: how? Mac Python 1 06-18-2005 02:30 PM
help: need to call call web service from java bill sandner Java 1 07-01-2004 02:57 PM
Help with a utility class and having a method call another method from within Ian Python 2 09-06-2003 03:35 PM
How to call an instance method from a static method allowing overrides? =?ISO-8859-1?Q?Thomas_Gagn=E9?= Java 9 07-02-2003 11:04 PM



Advertisments