PLATEFORM: VC++ 7 , ADO, WINDOWS 2003, POSTGRE 8.2

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 either startTransaction failed or commit 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


                        CADORecordset rset(pCnn);
                        rset.Open("select * from sp_getnewfiles('server',10)");
                        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 : commit failed


Thanks in advance:
Nasim


---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

                http://www.postgresql.org/about/donate

Reply via email to