I m having a problem while calling the procedure in prostgresql 8.2 from adoconnection, It gets executed for some time and after 5-10 call it gives error startTransaction failed or CommitTransaction Failed. CREATE OR REPLACE FUNCTION sp_getnewfiles(IN strserverid character varying, IN nmaxcount integer, OUT stroutrecno character varying) AS $BODY$ DECLARE cur RECORD; i integer; BEGIN i:=0; LOCK TABLE inputtable IN ROW EXCLUSIVE MODE NOWAIT; FOR cur IN select recno from InputTable where FileState=0 order by recno limit nMaxCount for update LOOP if i=0 then strOutRecNo:='recno='; else strOutRecNo:=strOutRecNo || ' or recno='; end if; strOutRecNo:=strOutRecNo||cur.recno; update inputtable set filestate=1,serverid=strServerID where recno=cur.recno; i:=i+1; END LOOP; EXCEPTION WHEN no_data_found THEN --DO NOTHING WHEN OTHERS THEN --rollback; RAISE EXCEPTION 'some error'; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE STRICT; the calling code is CADOXSet rset(pCnn); ostringstream ost; ost<<"select * from sp_getnewfiles('"<<GetServerID()<<"',"<<nMaxCount<<")"; rset.Open(ost.str()); ASSERT(rset.IsEOF()==false); strRecNo=rset.GetFieldValue(0); the error I encountered after some number of calls is either - Error message: Unspecified error Engine Used: PgOleDb Error type : StartTransaction failed or Error message: Unspecified error Engine Used: PgOleDb Error type : commitTransaction failed Thanks in advance: Nasim