Re: [ADMIN] Problem with lo_export() and lo_import() from remote machine. - Mailing list pgsql-general

From Purusothaman A
Subject Re: [ADMIN] Problem with lo_export() and lo_import() from remote machine.
Date
Msg-id 3650d0d50609110630p7c0fa6dfsb9dbc995f4406680@mail.gmail.com
Whole thread Raw
In response to Re: [ADMIN] Problem with lo_export() and lo_import() from remote machine.  ("Marco Bizzarri" <marco.bizzarri@gmail.com>)
Responses Re: [ADMIN] Problem with lo_export() and lo_import() from remote machine.
List pgsql-general
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()].

Now, can you suggest me how to achieve it?

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

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

Should I use those C API calls?

:)
Purusothaman A

On 9/11/06, Marco Bizzarri <marco.bizzarri@gmail.com > 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@gmail.com> 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@svana.org> 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@svana.org>   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/

pgsql-general by date:

Previous
From: "Marcin Mank"
Date:
Subject: Re: references/tutorial/tricks on dynamic generation of sql (& plpgsql functions) editing/coding
Next
From: John DeSoi
Date:
Subject: Re: references/tutorial/tricks on dynamic generation of sql (& plpgsql functions) editing/coding