HELP FOR POSTGRESQL NEEDED...

From: ozric tentacle <ozric02(at)yahoo(dot)gr>
To: pgsql-questions(at)postgresql(dot)org, pgsql-interfaces(at)postgresql(dot)org
Subject: HELP FOR POSTGRESQL NEEDED...
Date: 2002-07-06 12:22:44
Message-ID: 20020706122244.55874.qmail@web13106.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces


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!?
Αποκτήστε την δωρεάν σας(at)yahoo(dot)gr διεύθυνση στο Yahoo! Mail.

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Sandro Dentella 2002-07-07 00:56:57 TkSql and pg_group...
Previous Message Bruce Momjian 2002-07-05 18:52:23 Re: Possible Bug regarding temp tables (sql or psql?)