Thread: IN FIRE
HELP!!! I'm stuck for strange reason! This is my first attempt to use pg_lo concept in my apps: ...Oid oid;PGconn* dbcon = PQconnectdb(conninfo.c_str());oid = lo_creat(dbcon, INV_WRITE | INV_READ);int pgfd = lo_open(dbcon,oid, INV_WRITE | INV_READ); ... lo_open ALWAYS returns -1 while oid is positive (I can even see oid in pg_largeobject system table)!!!! postmaster reports the following: ERROR: lo_lseek: invalid large obj descriptor (0) I realy NEED a prompt advice! Please find a couple of minutes for reply! TIA Stanislav ps> I run FreeBSD-4.4 + ported PostgreSQL-7.1.3 pps> my other pg-connected apps run OK
> > I'm stuck for strange reason! > This is my first attempt to use pg_lo concept in my apps: > > ... > Oid oid; > PGconn* dbcon = PQconnectdb(conninfo.c_str()); > oid = lo_creat(dbcon, INV_WRITE | INV_READ); > int pgfd = lo_open(dbcon, oid, INV_WRITE | INV_READ); > ... > > > lo_open ALWAYS returns -1 while oid is positive (I can even see oid > in pg_largeobject system table)!!!! Use transactions (BEGIN; END;). Large objects rely on this
Stanislav Silnitski <stalker@minicorp.ru> writes: > HELP!!! > > I'm stuck for strange reason! > This is my first attempt to use pg_lo concept in my apps: > > ... > Oid oid; > PGconn* dbcon = PQconnectdb(conninfo.c_str()); > oid = lo_creat(dbcon, INV_WRITE | INV_READ); > int pgfd = lo_open(dbcon, oid, INV_WRITE | INV_READ); > ... > > > lo_open ALWAYS returns -1 while oid is positive (I can even see oid > in pg_largeobject system table)!!!! > > postmaster reports the following: > ERROR: lo_lseek: invalid large obj descriptor (0) You need to do all your LO manipulation inside a transaction. See the docs. -Doug