retreive record set

View: New views
5 Messages — Rating Filter:   Alert me  

retreive record set

by Michael GUIARD :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
Hi !
 
I'd like to get my request results in a record set as a C structure using libpq.
Is it possible or do I have to use ECPG only ?
 
How PGresult pointer stores the results ? 
Actually I can convert all my result fields from PGresult to my C structure but I think also it is a little bit stupid if PGresult does its own conversion before ... no ?
 
thanks
Mike

Parent Message unknown Re: retreive record set

by Magnus Hagander :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> Hi !
>  
> I'd like to get my request results in a record set as a C
> structure using libpq.
> Is it possible or do I have to use ECPG only ?
>  
> How PGresult pointer stores the results ?
> Actually I can convert all my result fields from PGresult to
> my C structure but I think also it is a little bit stupid if
> PGresult does its own conversion before ... no ?

You are not suppsed to know how PGresult stores the data, you are only
permitted to access it through the accessor functions. This is so it's
possible to change the underlying implementation without breaking your
apps...

You *can* access the data directly, all the rqeuired structs are in the
include files (but not in the libpq-fe.h file - you need the full
includes). I would stronly advise you not to, though.

//Magnus

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Re: retreive record set

by Michael GUIARD :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Magnus,

I understood that I am not supposed to know how PGresult stores the data,
but I do not know how to fill my structure directly rather than to fill it
field by field.
I saw ecpg gives methods to do this (with descriptors), but I do not
understand all about it, and I think it is too complicated for my small
needs. Further, I do not want to change the implementation of postgreqsl
libpq.

So if I have no other choice than convert all result fields to fill my
structure I will do this ...

what is your advices about this ?

thanks a lot
Mike

----- Original Message -----
From: "Magnus Hagander" <mha@...>
To: "Michael GUIARD" <m.guiard@...>;
<pgsql-hackers-win32@...>
Sent: Monday, August 01, 2005 10:03 AM
Subject: RE: [pgsql-hackers-win32] retreive record set


> Hi !
>
> I'd like to get my request results in a record set as a C
> structure using libpq.
> Is it possible or do I have to use ECPG only ?
>
> How PGresult pointer stores the results ?
> Actually I can convert all my result fields from PGresult to
> my C structure but I think also it is a little bit stupid if
> PGresult does its own conversion before ... no ?

You are not suppsed to know how PGresult stores the data, you are only
permitted to access it through the accessor functions. This is so it's
possible to change the underlying implementation without breaking your
apps...

You *can* access the data directly, all the rqeuired structs are in the
include files (but not in the libpq-fe.h file - you need the full
includes). I would stronly advise you not to, though.

//Magnus
---------------------------------------------------------------------------------------
Wanadoo vous informe que cet  e-mail a ete controle par l'anti-virus mail.
Aucun virus connu a ce jour par nos services n'a ete detecte.





---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Re: retreive record set

by Michael GUIARD :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I understood that I am not supposed to know how PGresult stores the data,
but I do not know how to fill my structure directly rather than to fill it
field by field using conversion.
I saw ecpg gives methods to do this (with descriptors), but I do not
understand all about it, and I think it is too complicated for my small
needs. Further, I do not want to change the implementation of postgreqsl
libpq.

So if I have no other choice than convert all result fields to fill my
structure I will do this ...

...any advices ?

thanks a lot
Mike

----- Original Message -----
From: "Magnus Hagander" <mha@...>
To: "Michael GUIARD" <m.guiard@...>;
<pgsql-hackers-win32@...>
Sent: Monday, August 01, 2005 10:03 AM
Subject: RE: [pgsql-hackers-win32] retreive record set


> Hi !
>
> I'd like to get my request results in a record set as a C
> structure using libpq.
> Is it possible or do I have to use ECPG only ?
>
> How PGresult pointer stores the results ?
> Actually I can convert all my result fields from PGresult to
> my C structure but I think also it is a little bit stupid if
> PGresult does its own conversion before ... no ?

You are not suppsed to know how PGresult stores the data, you are only
permitted to access it through the accessor functions. This is so it's
possible to change the underlying implementation without breaking your
apps...

You *can* access the data directly, all the rqeuired structs are in the
include files (but not in the libpq-fe.h file - you need the full
includes). I would stronly advise you not to, though.

//Magnus
---------------------------------------------------------------------------------------
Wanadoo vous informe que cet  e-mail a ete controle par l'anti-virus mail.
Aucun virus connu a ce jour par nos services n'a ete detecte.





---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Parent Message unknown Re: retreive record set

by Magnus Hagander :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> Hi Magnus,
>
> I understood that I am not supposed to know how PGresult
> stores the data, but I do not know how to fill my structure
> directly rather than to fill it field by field.
> I saw ecpg gives methods to do this (with descriptors), but I
> do not understand all about it, and I think it is too
> complicated for my small needs. Further, I do not want to
> change the implementation of postgreqsl libpq.
>
> So if I have no other choice than convert all result fields
> to fill my structure I will do this ...
>
> what is your advices about this ?

AFAIK there is no way in libpq to bind directly to variables. You'll
have to do a loop with pqgetvalue() to fill your struct.

//Magnus

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match