Yasser Shakoor wrote:
> 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

As I said, I don't use postgres much but I still cannot tell from your
response if you have compared the versions of the postgres client
library - libpq.so (I think). I believe the change to output the error
you are seeing is in that library although I've not checked myself.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com


> 
> 
> 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

Reply via email to