|
Home > Archive > PostgeSQL ODBC > November 2005 > 8.1.1.0, VB6, RDO, rdoResultset.RowCount
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
8.1.1.0, VB6, RDO, rdoResultset.RowCount
|
|
| Hélder M. Vieira 2005-11-09, 8:23 pm |
| Hi.
I noticed a difference in behaviour in 8.1.1.0, related with the RowCount
property in RDO resultsets in VB6.
In version 7xxx, for some specific purposes, I used to open a resultset and
immediatly check RowCount.
For non-empty resultsets, at this point in time RowCount would be innacurate
but NOT EQUAL to 0, and based on this first evaluation I would proceed to
the next step, either assuming an empty set or forcing a move to the last
row to obtain a precise RowCount.
In version 8.1.1.0, RowCount always seems to be EQUAL to 0, unless I force a
move to the last row.
At this point, my problem is that I don't know which is the right
behaviour... Should I assume that in this and later versions of the driver
RowCount will always be EQUAL to 0 before visiting the last row ?
Thanks in advance.
Helder M. Vieira
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
| |
| me@alternize.com 2005-11-09, 8:23 pm |
| hi there
this was discussed earlier today i think...
the recordset has an EOF (end of file) flag. if rs.EOF equals False, then
there are rows in the resultset.
cheers,
thomas
----- Original Message -----
From: "Hélder M. Vieira" <hmv@mail.telepac.pt>
To: <pgsql-odbc@postgresql.org>
Sent: Thursday, November 10, 2005 2:06 AM
Subject: [ODBC] 8.1.1.0, VB6, RDO, rdoResultset.RowCount
> Hi.
>
>
> I noticed a difference in behaviour in 8.1.1.0, related with the RowCount
> property in RDO resultsets in VB6.
> In version 7xxx, for some specific purposes, I used to open a resultset
> and immediatly check RowCount.
> For non-empty resultsets, at this point in time RowCount would be
> innacurate but NOT EQUAL to 0, and based on this first evaluation I would
> proceed to the next step, either assuming an empty set or forcing a move
> to the last row to obtain a precise RowCount.
> In version 8.1.1.0, RowCount always seems to be EQUAL to 0, unless I force
> a move to the last row.
> At this point, my problem is that I don't know which is the right
> behaviour... Should I assume that in this and later versions of the driver
> RowCount will always be EQUAL to 0 before visiting the last row ?
>
>
> Thanks in advance.
>
>
> Helder M. Vieira
>
>
>
>
>
>
>
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
| |
| Hélder M. Vieira 2005-11-09, 8:23 pm |
| > this was discussed earlier today i think...
>
> the recordset has an EOF (end of file) flag. if rs.EOF equals False, then
> there are rows in the resultset.
Thanks and yes, EOF is indeed a much cleaner way for early testing of a
potentially empty resultset.
But now I have another disturbing situation, that came up during EOF
tests...
If I have a non-empty resultset, traveling all the way (using MoveNext)
until EOF is found doesn't produce a valid RowCount.
Only a MoveLast seems to do the job.
I created a five rows / two columns table, opened a 'select *' resultset and
performed the following sequence:
With ordoRs
.MoveFirst
While Not .EOF
Debug.Print .rdoColumns("f1"), .rdoColumns("f2"), .RowCount ' <----
RowCount is always equal to 0
.MoveNext
Wend
.MoveLast
Debug.Print , , .RowCount ' <---- RowCount is correct
End With
This seems somewhat dangerous to me, although I must say I never made a
similar test with any ODBC driver (as far as I can remember, I always used
MoveLast to get an accurate RowCount).
Helder M. Vieira
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
| |
| me@alternize.com 2005-11-10, 3:23 am |
| easy workaround:
Dim lCount as Integer
lCount = 0
With ordoRs
.MoveFirst
While Not .EOF
lCount = lCount + 1
Debug.Print .rdoColumns("f1"), .rdoColumns("f2"), lCount
.MoveNext
Wend
End With
i never used rowcount, not even when accessing other db-systems: rowcount is
not available for other resultset-modes like forwardonly..
cheers,
thomas
----- Original Message -----
From: "Hélder M. Vieira" <hmv@mail.telepac.pt>
To: <pgsql-odbc@postgresql.org>
Sent: Thursday, November 10, 2005 3:16 AM
Subject: Re: [ODBC] 8.1.1.0, VB6, RDO, rdoResultset.RowCount
>
>
> Thanks and yes, EOF is indeed a much cleaner way for early testing of a
> potentially empty resultset.
> But now I have another disturbing situation, that came up during EOF
> tests...
> If I have a non-empty resultset, traveling all the way (using MoveNext)
> until EOF is found doesn't produce a valid RowCount.
> Only a MoveLast seems to do the job.
>
> I created a five rows / two columns table, opened a 'select *' resultset
> and
> performed the following sequence:
>
> With ordoRs
> .MoveFirst
> While Not .EOF
> Debug.Print .rdoColumns("f1"), .rdoColumns("f2"), .RowCount '
> <---- RowCount is always equal to 0
> .MoveNext
> Wend
> .MoveLast
> Debug.Print , , .RowCount ' <---- RowCount is correct
> End With
>
> This seems somewhat dangerous to me, although I must say I never made a
> similar test with any ODBC driver (as far as I can remember, I always used
> MoveLast to get an accurate RowCount).
>
>
> Helder M. Vieira
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
|
|
|
|
|