Thread: Using C++ to access Postgresql database

Using C++ to access Postgresql database

From
Madhurima Das
Date:
Hi,

I am a beginner in Postgresql and trying to write a C++ program to connect a database and retrieve information from a database.

I have downloaded Postgresql 9.3 in my MAC laptop and could create a database XXX with a user YYY and password ZZZ. I can create, modify etc using the pgAdmin3 tool. 

Next, I tried connecting the database using a sample code:

#include <iostream>
#include <pqxx/pqxx> 

using namespace std;
using namespace pqxx;

int main(int argc, char* argv[])
{
   try{
      connection C("dbname=XXX user=YYY password=ZZZ \
      hostaddr=127.0.0.1 port=5432");
      if (C.is_open()) {
         cout << "Opened database successfully: " << C.dbname() << endl;
      } else {
         cout << "Can't open database" << endl;
         return 1;
      }
      C.disconnect ();
   }catch (const std::exception &e){
      cerr << e.what() << std::endl;
      return 1;
   }
}

However, the output says: error: pqxx/pqxx: No such file or directory

When I try to install pqxx, I get configure error as:
PostgreSQL configuration script pg_config not found.  Make sure this is in your
command path before configuring.  Without it, the configure script has no way to
find the right location for the libpq library and its headers.

I am unable to find this file. The path of my Postgresql is 
$ ps auxw | grep postgres | grep -- -D
postgres    70   0.0  0.0  2594280    444   ??  Ss    9:17AM   0:00.11 /Library/PostgreSQL/9.3/bin/postmaster -D/Library/PostgreSQL/9.3/data

I would appreciate your help in solving my problem. 

Thanks for your patience!!

Regards
Madhurima

Re: Using C++ to access Postgresql database

From
Josh Berkus
Date:
> I am unable to find this file. The path of my Postgresql is
> $ ps auxw | grep postgres | grep -- -D
> postgres    70   0.0  0.0  2594280    444   ??  Ss    9:17AM   0:00.11
> /Library/PostgreSQL/9.3/bin/postmaster -D/Library/PostgreSQL/9.3/data

pg_config should be in that same bin/ directory.  It's not?

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com