Thread: Annoying problem with UseDeclareFetch

Annoying problem with UseDeclareFetch

From
Thomas Chabaud
Date:
I'm using VB 6.0 with postgreSQL v8.0 and ODBC Driver v8.1.1.
I have set the driver's option UseDeclareFetch to true in order to avoid
recordset paging problem, but with this option enabled, rs.RecordCount
is always equal to -1.

Is it normal ?
Is there a way to solve this, because my application makes a lot of
calls to rs.recordcount ? Another driver option ? Driver version ?

Thanks in advance.

Regards,

Thomas Chabaud

Re: Annoying problem with UseDeclareFetch

From
"gunawan"
Date:
----- Original Message -----
From: "Thomas Chabaud" <tc@geosys.com>
To: <pgsql-odbc@postgresql.org>
Sent: Tuesday, November 29, 2005 4:34 PM
Subject: [ODBC] Annoying problem with UseDeclareFetch


| I'm using VB 6.0 with postgreSQL v8.0 and ODBC Driver v8.1.1.
| I have set the driver's option UseDeclareFetch to true in order to avoid
| recordset paging problem, but with this option enabled, rs.RecordCount
| is always equal to -1.
|
| Is it normal ?
| Is there a way to solve this, because my application makes a lot of
| calls to rs.recordcount ? Another driver option ? Driver version ?

to handle this matter I prefer not to use rs. recorcount, but I use while
... wend so I can get the correct one.
another driver maybe ... should you try pgoledb.
Hope this can solve your problem ...

|
| Thanks in advance.
|
| Regards,
|
| Thomas Chabaud
|
| ---------------------------(end of broadcast)---------------------------
| TIP 6: explain analyze is your friend
|

Salut
Andi Gunawan


Re: Annoying problem with UseDeclareFetch

From
Ludek Finstrle
Date:
> I'm using VB 6.0 with postgreSQL v8.0 and ODBC Driver v8.1.1.
> I have set the driver's option UseDeclareFetch to true in order to avoid
> recordset paging problem, but with this option enabled, rs.RecordCount
> is always equal to -1.

Yes. It do it this way.

> Is it normal ?

It made older versions too becouse driver (with UseDeclareFetch turned
on) change SELECT .. to DECLARE CURSOR FOR SELECT ...
This SQL command return ok (no recordcount). Then is called fetch
which get max "cache size" (in Data Source options) rows and
backend return fetched count.
It's need whole rewrite of psqlodbc to solve this problem.

> Is there a way to solve this, because my application makes a lot of
> calls to rs.recordcount ? Another driver option ? Driver version ?

Unfortunatelly this depends only on UseDeclareFetch option.

New driver has problem with rowcount but I'll send patch for the problem
in few minutes. This patch doesn't solve your problem as I describe above.

Regards,

Luf

Re: Annoying problem with UseDeclareFetch

From
Dave Page
Date:


On 1/12/05 8:09 pm, "Ludek Finstrle" <luf@pzkagis.cz> wrote:

>> I'm using VB 6.0 with postgreSQL v8.0 and ODBC Driver v8.1.1.
>> I have set the driver's option UseDeclareFetch to true in order to avoid
>> recordset paging problem, but with this option enabled, rs.RecordCount
>> is always equal to -1.
>
> Yes. It do it this way.
>
>> Is it normal ?
>
> It made older versions too becouse driver (with UseDeclareFetch turned
> on) change SELECT .. to DECLARE CURSOR FOR SELECT ...
> This SQL command return ok (no recordcount). Then is called fetch
> which get max "cache size" (in Data Source options) rows and
> backend return fetched count.
> It's need whole rewrite of psqlodbc to solve this problem.

Rewriting psqlODBC won't help. When you use declare/fetch the driver simply
doesn't know how many rows there are until it's fetched them all, nor does
it have any way of getting that info.

Regards, Dave