Andrew,

I think I see the problem.  (It was the 'invalid large obj descriptor 
(0)' message that clued me in).  The LargeObject reference is only valid 
within a transaction.  Thus if you have autocommit turned on, you 
basically can't use LargeObjects.  Because as soon as the sql is 
executed to get the large object reference, it is autocommitted and then 
this reference can't be used anymore since the transaction ended.  Try 
turning autocommit off and you should have more luck.

thanks,
--Barry



[EMAIL PROTECTED] wrote:

> 
> Still trying to store and retrieve large objects, still having trouble.
> 
> Though I'd rather be able to set/get streams from the
> PreparedStatment/ResultSet, I thought I'd try to use the postgres
> extensions and see where I get with that.
> 
> Here is what I tried so far.
> 
>  LargeObjectManager loman =
> ((org.postgresql.Connection)con).getLargeObjectAPI(); 
> 
> int looid = loman.create();
>     
> LargeObject lo = loman.open(looid);
> 
> Everything seems to work as expected until I try to write a byte[] with
> 
> lo.write(b);  //b is some arbitrary byte array
> 
> The result is: 
> 
> FastPath call returned ERROR:  lo_write: invalid large obj descriptor (0)
> 
> Any comments or ideas?
> 
> Andrew
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
> http://www.postgresql.org/users-lounge/docs/faq.html
> 
> 



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

Reply via email to