pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: ozric tentacle <ozric02@yahoo.gr>
To: pgsql-questions@postgresql.org
To: pgsql-interfaces@postgresql.org
Subject: HELP FOR POSTGRESQL NEEDED...
Date: Sat, 6 Jul 2002 13:22:44 +0100 (BST)
Message-ID: <20020706122244.55874.qmail@web13106.mail.yahoo.com> (raw)


Hello.I am experiencing a quite strange behavior with my postgreSQL database.

I have edited the file pg_hba.conf like this:

# TYPE     DATABASE    IP_ADDRESS    MASK               AUTH_TYPE  AUTH_ARGUMENT
local      all                                                                       password
host       all         127.0.0.1     255.255.255.255                   password

in order to require user authentication.This works perfectly when I connect to the database with psql or pgaccess and I'm able to perform

all kinds of queries.

However when I try to connect to the database with C++ even though it allows me to connect (providing the correct username & password)

all the queries fail...The C++ code I use is the following:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <string>

#include "libpq++.h"

using namespace std;


int main()

{
  string login,pwd;
  char name[10];
  char query_string[256];

  cout << ">username:";
  cin >> login;
  cout << ">password:";
  cin >> pwd;

  cout<<"user to search:";
  cin >> name;


  // Open the connection to the database and make sure it's OK

  PgDatabase data("dbname=goumero");


  char       *pghost,*pgport,*pgoptions,*pgtty;
  char       *dbName;

   pghost = NULL;              /* host name of the backend server */
   pgport = NULL;              /* port of the backend server */
   pgoptions = NULL;         /* special options to start up the backend server */
   pgtty = NULL;               /* debugging tty for the backend server */
   dbName = "goumero";

   PGconn* conn;

   conn =  PQsetdbLogin(pghost,pgport,pgoptions,pgtty,dbName,login.c_str(),pwd.c_str()) ;

  if (PQstatus(conn) == CONNECTION_BAD ) {
        fprintf(stderr, "Connection to database '%s' failed.\n", dbName);
        fprintf(stderr, "%s", PQerrorMessage(conn));
        return 1;
  }
  else
      //Connection successful...


      data.Exec("BEGIN WORK");
      data.Exec("LOCK TABLE account in ACCESS EXCLUSIVE  MODE");


            sprintf(query_string,                               // create an SQL query string
                    "SELECT *   \
                     FROM account \
                     WHERE name='%s'" , name);
              if ( !data.ExecTuplesOk(query_string) )             // send the query
            {
                cerr << "query failed." << endl;
                exit(1);
            }

            for (int i=0; i < data.Tuples(); i++)               // loop through all rows returned
                    cout << data.GetValue(i,0) << endl;   // print the value returned

/**************************************************************************************/

      data.Exec("COMMIT WORK");
      PQfinish(conn);

return 0;

} // End main()

Note:The same query above is correctly executed when I connect with psql .

Also if I remove the user authentication stuff then the same code is executed correctly.

I would be grateful if you helped me - I'm desperate....

  

 


 

 


 

 



---------------------------------
Do You Yahoo!?
ÁðïêôÞóôå ôçí äùñåÜí óáò@yahoo.gr äéåýèõíóç  óôï Yahoo! Mail.

view thread (2+ messages)  latest in thread

Message-ID: <20020706122244.55874.qmail@web13106.mail.yahoo.com>
Permalink:  ../20020706122244.55874.qmail@web13106.mail.yahoo.com/
Also on:    postgresql.org/message-id/20020706122244.55874.qmail@web13106.mail.yahoo.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: ozric02@yahoo.gr, pgsql-questions@postgresql.org
  Subject: Re: HELP FOR POSTGRESQL NEEDED...
  In-Reply-To: <20020706122244.55874.qmail@web13106.mail.yahoo.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox