Re: [GENERAL] Problem with lo_export() and lo_import() from remote machine.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/11/06, Purusothaman A <purusothaman.a@xxxxxxxxx> wrote:
Hi Marco Bizzarri and Martijn van Oosterhout,


Thanks for your valuable reply.

I am trying to execute all query from VC++ through
CDatabase::ExecuteSQL(sQueryString) function call.

ie, via programming, not by manual entering query statements.
so, in my situation I can construct a string and pass on to this function to
execute the query string.

Whatever the string I pass to ExecuteSQL() function, gets executed and I
cannot get any result retured from the passed query string [like OID -
198705, from lo_create()].

I'm not an expert in VC++. I think you should obtain some sort of
ResultSet object. You could then check that.



Now, can you suggest me how to achieve it?

And one more clarification, what is the value 131072? How can I get this
vlaue?

This is actually 0x20000 value in decimal. Check large object
interface in postgresql documentation (C API).

According to PostgreSQL documentation, they gave C Syntax as client side
function.

Should I use those C API calls?

If you're working from inside C, you can check:

http://www.postgresql.org/docs/8.1/static/lo-interfaces.html

Regards
Marco


:)
Purusothaman A


On 9/11/06, Marco Bizzarri <marco.bizzarri@xxxxxxxxx > wrote:
> I will try to explain it with a sample session: this is for creating
> and writing a blob.
>
> From the psql prompt (> are the commands, the other are the results).
>
> > begin ;
> BEGIN;
>
> > SELECT lo_creat(131072) ;
> lo_creat
> ----------
>    198705
> (1 row)
> (this is the OID number of the newly created large object).
>
> > select  lo_open(198705, 131072) ;
> lo_open
> ---------
>        0
> (1 row)
>
> (this is the file handler which you will use in the operations).
>
> > SELECT lowrite(0, 'aaaa');
> lowrite
> ---------
>        4
> (1 row)
>
> (you wrote 4 character in a large object)
>
> > select lo_close(0);
> lo_close
> ----------
>         0
> (1 row)
>
> (you closed the file).
>
> > commit ;
> COMMIT
>
> In this way, you created a new large object, and stored a string of 4
> bytes inside of it.
>
> Regards
> Marco
>
> On 9/11/06, Purusothaman A < purusothaman.a@xxxxxxxxx> wrote:
> > Thanks Martijn van Oosterhout and Marco Bizzarri.
> >
> > But, according to syntax of client side lo_import and lo_export, we
should
> > have 2 variable PGconn (for esatablished connection) and lobjld
(imported
> > file ID in PostgreSQL).
> >
> > I don't know how to do this in SQL statements.
> >
> > pls give me sample client side sql statements.
> >
> > :)
> > Purusothaman A
> >
> >
> > On 9/11/06, Martijn van Oosterhout < kleptog@xxxxxxxxx> wrote:
> > >
> > On Mon, Sep 11, 2006 at 03:27:09PM +0530, Purusothaman A wrote:
> > > Thanks Martijn van Oosterhout,
> > >
> > > So, I have to write my own wrapper function upon the functions below.
> > >   1. Oid lo_import(PGconn *conn, const char *filename);
> > >   2. int lo_export(PGconn *conn, Oid lobjId, const char *filename);
> >
> > Not sure why you need a wrapper (you didn't say which language you were
> > using) but those functions work exactly like the version you put in the
> > SQL statements, except the filenames are for the client computer with
> > client permissions.
> >
> > Hope this helps,
> > --
> > Martijn van Oosterhout   <kleptog@xxxxxxxxx>   http://svana.org/kleptog/
> > > From each according to his ability. To each according to his ability
to
> > litigate.
> >
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.1 (GNU/Linux)
> >
> >
iD8DBQFFBTR4IB7bNG8LQkwRAvhPAJ9KHp9DO1EjPqbkGwBdaSaKx5J90wCfQtZ8
> > ijq1n/SgAlwIiEgDI6zfICg=
> > =Xk7N
> > -----END PGP SIGNATURE-----
> >
> >
> >
> >
>
>
> --
> Marco Bizzarri
> http://notenotturne.blogspot.com/
>




--
Marco Bizzarri
http://notenotturne.blogspot.com/


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux