Re: libpq++ updates - Mailing list pgsql-interfaces

From Eugene Karpachov
Subject Re: libpq++ updates
Date
Msg-id 20000526085711.A3380@steel.orel.ru
Whole thread Raw
In response to libpq++ updates  (dagraz@mindspring.com)
List pgsql-interfaces
Wed, May 24, 2000 at 04:54:05PM -0400, dagraz@mindspring.com пишет:
> There are a couple of changes I would like to make to libpq++,
> but I thought I would write first to check
> a) add string overloads to the methods accepting char*'s

Are you mean somefun(const char *) --> somefun(string) or
somefun(const string &) ? It would be useful, with 'string' from STL.
But it will force class users to use STL :(.

> 
> c) Move PgConnection::Connect and PgConnection::PgConnection()
>    from the protected to the public interface.
> 
> Any reasons why this would be undesirable?

The only reason is that: less public members is better. If you really need,
for example, PgConnection::Connect() in your program, you can derive
class from PgConnection or PgDatabase and use the protected member in derived
class methods. These protected members have almost no use for 'public users'.

> any thoughts will be appreciated,

Maybe some methods like ExecTuplesOk, ExecCommandOk should emit exceptions?
Something derived from standard class 'exception', like

#include <exception>
class PGerror : public exception
{
private:string err; // or, maybe, 'const char *err' if you don't like STL
public:PGerror(PgDatabase *db) : err(db->ErrorMessage()) {}virtual const char *what() const { return err.c_str(); }
};

-- 
jk


pgsql-interfaces by date:

Previous
From: Tom Lane
Date:
Subject: Re: Postmaster is getting bigger
Next
From: Max Khon
Date:
Subject: Re: importing from other dbases