Hi Martin
Thanks for your help the code is working with the older version of
clients on the other machine and i have tried
with downgrading and upgrading the postgres DBI and DBD but it didn't
worked.
The same code is working on the other machine with the older DBD and DDI
driver.
I have tried all the things but as i am new with the perl i don't know
exactly what is the problem.
Regards,
Yasser
On Mon, 2010-01-04 at 09:02 +0000, Martin Evans wrote:
> Yasser Shakoor wrote:
> > Hi all
> >
> > I am trying the same code on 2 different machines on one machine it is
> > running ok and on the other machine it is giving strange kind of error,
> > i have tried every thing but was not able to sort thois out so i thought
> > to take help from you people.
> > #!/usr/bin/perl
> > #
> > # This script will produce daily web access statistic reports
> > #
> > #
> >
> > use DBI;
> >
> > # if today is the first of the month then don't run :
> > $day = `date +%d`;
> > if ($day=="01") {
> > exit(0);
> > } else {
> >
> > # Connect to database
> > $conn =
> > DBI->connect("dbi:Pg:dbname=webstatinfo;host=database.webstar.co.uk",
> > "anila", "bdjx14eq");
> > # test to see if connecting!!
> > if ( !defined $conn ) {
> > die "Cannot connect to database!\n";
> > }
> >
> > print ("I have connected to the database webstatinfo\n");
> >
> > # Obtain all the data from the database and put into a series of arrays
> > # @domain1 is an array containing all the data for the first domain in
> > # the postgres database, @domain2 for the second domain etc..
> >
> > print ("GETTING DATA FROM DATABASE\n");
> > $querystring=("select output_filepath, hostname, logfile from
> > loginfo");
> > $result = $conn->prepare($querystring);
> > if ( !defined $result ) {
> > die "Cannot prepare statement: $DBI::errstr\n";
> > }
> > $result->execute;
> >
> > $i=0;
> > while ( @row = $result->fetchrow()) {
> > $this_domain = "domain$i";
> > @$this_domain = @row;
> > print "$this_doma...@$this_domain\n";
> > $i++;
> > }
> > $numweb = $i;
> > $result->finish;
> > $conn->disconnect;
> >
> > The out put on the machine where i am getting the error is as below:
> >
> > I have connected to the database webstatinfo
> > GETTING DATA FROM DATABASE
> > DBD::Pg::st execute failed: function requires at least protocol version
> > 3.0 at ./analogscriptdaily line 34.
> > DBD::Pg::st fetchrow failed: no statement executing
> > at ./analogscriptdaily line 37.
> >
> >
> > There is no problem in connecting to the database the line number on
> > which error is coming up is:
> > $result->execute;
> >
> > i have tried uninstalling the DBI and DBD module and installing it from
> > cpan but still getting the same error any help in this matter will be
> > appreciated.
> >
> >
>
> I don't really use postgres but I'd search for "function requires at
> least protocol version 3.0" which threw up for me:
>
> http://www.mail-archive.com/[email protected]/msg43720.html
> http://archives.postgresql.org/pgsql-hackers/2004-10/msg00133.php
>
> and I'd guess upgrading your postgres client libraries may help
>
> but that is just a guess.
>
> Martin