Problem with Use Declare/Fetch - Mailing list pgsql-odbc

From Alexandre - Aldeia Digital
Subject Problem with Use Declare/Fetch
Date
Msg-id 4F624C5D.1010809@aldeiadigital.com.br
Whole thread Raw
Responses Re: Problem with Use Declare/Fetch  (Hiroshi Inoue <inoue@tpf.co.jp>)
List pgsql-odbc
Hi,

Some time ago, We start to update our ODBC version.
We are using Post 9.0.4(UTF) and ODBC Unicode (psqlodbc_09_01_0100-1)
with use declare/fetch enable.

One of my customeres have a routine thats reads from some tables and
inserts in anoter. Bellow, some statements:

{snip}

<192.168.1.160# 2012-03-15 16:09:09 BRT 3117>LOG:  statement:
BEGIN;declare "P01303" cursor for SELECT PC33Codigo, PC33Emp08,
PC33FatArr, PC33QtdPte, PC33CodInd FROM PC33T WHERE PC33Emp08 = '17' and
PC33Codigo = E'DECLARE F ' ORDER BY PC33Emp08, PC33Codigo ;fetch 100 in
"P01303"
<192.168.1.160# 2012-03-15 16:09:09 BRT 3118>LOG:  statement: close "P01303"

<192.168.1.160# 2012-03-15 16:09:09 BRT 3119>LOG:  statement: declare
"P01304" cursor for SELECT PC01CodEmp, PC01UsaCom, PC01TabRel FROM PC01T
WHERE PC01CodEmp = '17' ORDER BY PC01CodEmp ;fetch 100 in "P01304"
<192.168.1.160# 2012-03-15 16:09:09 BRT 3120>LOG:  statement: close "P01304"

---- PROBLEM HERE ---

<192.168.1.160# 2012-03-15 16:09:09 BRT 3121>LOG:  statement: declare
"P01305" cursor for SELECT Pc13Item, PC13CodPed, PC13AnoPed, PC13Emp08P,
PC13VlrEst, PC13VrUnit, PC13Cor, PC13Codigo, PC13Emp08, PC13Produ,
PC13Linha FROM PC13T WHERE (PC13Emp08 = '17' and PC13Codigo >= E'
              ') AND (PC13Linha >= '0' and PC13Linha <= '99999') AND
(PC13CodPed = '0') AND (PC13AnoPed = 0) AND (PC13Produ = E'S') AND
(PC13Codigo <= E'zzzzz               ') ORDER BY PC13Emp08, PC13Codigo,
PC13Cor, PC13AnoPed ;fetch 100 in "P01305"

---- PROBLEM HERE ---

<192.168.1.160# 2012-03-15 16:09:09 BRT 3122>LOG:  statement: declare
"P36492" cursor with hold for SELECT cf25item, cf25objeto, cf02login,
cf25conteu FROM CF25T WHERE cf02login = E'ADMINISTRADOR       ' and
cf25objeto = E'PC0295PC0208   ' and cf25item = '1' ORDER BY cf02login,
cf25objeto, cf25item ;fetch 100 in "P36492"
<192.168.1.160# 2012-03-15 16:09:09 BRT 3123>LOG:  statement: close "P36492"

{snip}


The problem is in table PC13T, that have more than 100 tuples. The
cursor "P01305" was executed once, instead of loop until the end of
resultset.
The strange is that this cursor is not CLOSED anymore:

postgres@vm002:~/data_90$ grep P01305 fetch_problem.log

<192.168.1.160# 2012-03-15 16:09:09 BRT 3121>LOG:  statement: declare
"P01305" cursor for SELECT Pc13Item, PC13CodPed, PC13AnoPed, PC13Emp08P,
PC13VlrEst, PC13VrUnit, PC13Cor, PC13Codigo, PC13Emp08, PC13Produ,
PC13Linha FROM PC13T WHERE (PC13Emp08 = '17' and PC13Codigo >= E'
              ') AND (PC13Linha >= '0' and PC13Linha <= '99999') AND
(PC13CodPed = '0') AND (PC13AnoPed = 0) AND (PC13Produ = E'S') AND
(PC13Codigo <= E'zzzzz               ') ORDER BY PC13Emp08, PC13Codigo,
PC13Cor, PC13AnoPed ;fetch 100 in "P01305"

postgres@vm002:~/data_90$


Best regards,


Alexandre

pgsql-odbc by date:

Previous
From: Hiroshi Inoue
Date:
Subject: Re: using pgsql-odbc using client certificate auth
Next
From: Hiroshi Inoue
Date:
Subject: Re: Problem with Use Declare/Fetch