X-Original-To: pgsql-interfaces@postgresql.org Received: from spampd.localdomain (postgresql.org [64.49.215.8]) by postgresql.org (Postfix) with ESMTP id 193A9475ED4 for ; Thu, 10 Apr 2003 18:26:50 -0400 (EDT) Received: from mail012.syd.optusnet.com.au (mail012.syd.optusnet.com.au [210.49.20.170]) by postgresql.org (Postfix) with ESMTP id 93C55474E42 for ; Thu, 10 Apr 2003 18:26:44 -0400 (EDT) Received: from macros (c18553.sunsh2.vic.optusnet.com.au [198.142.132.148]) by mail012.syd.optusnet.com.au (8.11.6p2/8.11.6) with ESMTP id h3AMQgo07602; Fri, 11 Apr 2003 08:26:42 +1000 From: "Matt Fitzgerald" To: "'Michiel Lange'" Cc: Subject: Re: Getting to learn libpqxx Date: Fri, 11 Apr 2003 08:26:17 +1000 Message-ID: <000801c2ffb0$34457790$0000fea9@macros> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4510 In-Reply-To: <5.1.0.14.0.20030410225357.00b5f4c8@192.168.1.3> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Importance: Normal X-Spam-Status: No, hits=-24.8 required=5.0 tests=BAYES_10,EMAIL_ATTRIBUTION,FROM_ENDS_IN_NUMS,IN_REP_TO, MSGID_OE_SPAM_4ZERO,ORIGINAL_MESSAGE,QUOTED_EMAIL_TEXT, RCVD_IN_NJABL,RCVD_IN_OSIRUSOFT_COM,REPLY_WITH_QUOTES autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) X-Archive-Number: 200304/74 X-Sequence-Number: 4013 Try compiling with the C++ compiler: g++ -o source source.cpp (You don't need to specify the .h extensions in C++) -Matt -----Original Message----- From: Michiel Lange [mailto:michiel@minas.demon.nl]=20 Sent: Friday, 11 April 2003 6:59 AM To: Matt Fitzgerald Cc: 'Michiel Lange'; pgsql-interfaces@postgresql.org Subject: Re: [INTERFACES] Getting to learn libpqxx Ok... here are some answers: Yes, pqxx/connection.h is in the include path, the errormessage I would get= =20 would be very different... I compile the source with gcc: gcc source.cpp -o source the libraries should be in place, I placed them in /usr/local/lib (and ran= =20 ldconfig) I will try the #include (I believe you forgot the .h), but from= =20 what I remember the char foo[234]; foo =3D bar << "blah" << bla; would be perfectly valid... but I can be mistaken... I will try your=20 suggestion and see if it will help... yet, the problem that the declaration (Connstring *db;) is not valid... Michiel At 17:32 10-4-2003 +1000, Matt Fitzgerald wrote: >Ok... some stupid questions: > >1. I take it pqxx/connection.h is in the include path? >2. If so, what command are you using to compile the source? > >Also, your connection string is not built correctly, 'connstring' is not a >class, thus it doesn't support any overloaded operators such as '<<' & '+' >etc. > >Do some thing like this: > >#include > >std::stringstream connstring; > >connstring << "host=3D" << host << "database=3D" << dbase << "username=3D"= << >uname << "password=3D" << passwd; > >// call connection constructor something like this: >Connection *db =3D new Connection(connstring.str().c_str()); > > >Etc.. etc.. also, as 'bool Immediate' defaults to 'true' you don't have to >specify it. > >Regards, > -Matt > > > > >-----Original Message----- >From: pgsql-interfaces-owner@postgresql.org >[mailto:pgsql-interfaces-owner@postgresql.org] On Behalf Of Michiel Lange >Sent: Thursday, 10 April 2003 8:31 AM >To: pgsql-interfaces@postgresql.org >Subject: [INTERFACES] Getting to learn libpqxx > >Hello everybody again, > >I went out to investigate and try if I could master libpqxx, for libpq++ >works not at all. Seeing it is discontinued, and people are encouraged to >use libpqxx, I was so bold as to try that ;-) > >Only to discover that there is hardly any documentation on how to access >stuff... now I, myself am more a C-programmer, and I know C++ is pretty >much different... it is really hard for me to think in classes and stuff, >to think object-oriented... > >So, now you know I am an earthling :P > >I tried this kind of approach, the idea was to start out simple... so don't >laugh at the attempt ... > >#include > >int main(int argc, char *argv[]) >{ > Connection *db; > char uname[250]; // username > char passwd[250]; // password > char host[250]; //hostname > char passwd[250]; //password > char dbase[250]; //database name > char connstring[1264]; > ... some output and input to get values for all these char arrays... > > connstring =3D "host=3D" >> host >> "database=3D" >> dbase >> "username=3D" > >> >uname >> "password=3D" >> passwd; > db =3D new Connection(connstring,true); > > if(db->is_open()) > { > cout << "Connection succesful!" << endl; > cout << db->Options(); > } > else > { > cout << "Something went wrong... oops" << endl; > } > delete db; > return 0; >} > >I get my first errors at "Connection *db" declaration... there is no >Connection defined... >Can anyone point out how to reference the classes libpqxx has? > >Also I was curious if my connstring was correctly built, but that is >another subject I think... One other very important thing would be: how can >I find out the error PostgreSQL will throw at me when I did something ugly? >At least I can find out the problem, when I make one then... > >Michiel > > >---------------------------(end of broadcast)--------------------------- >TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org > > >---------------------------(end of broadcast)--------------------------- >TIP 4: Don't 'kill -9' the postmaster