Well after playing with some of the code in DBI and running into a few
problems I was not able to easily get over I will have to hold up on my
idea of a DBI version for now.
Mostly I was not able to figure out an easy way of where and how am I
going to store/cache the 'record set' data, I did try to use DBI::Gofer
for this but still need some more time to get it right for all cases.
So I will for now just implement 'Scrollable Cursors' as a private
function in DBD:Oracle. That way I can get the functionality out there
so others can see how it works.
Expect to see the first RC of 1.21 in the next day or two.
Cheers
John Scoles
[EMAIL PROTECTED] wrote:
Opps my night for boo-boos
Anyway here is my whole message
Ok one bigger patch to DBI comming up
I guess I can use the following for
SQL_FETCH_NEXT
SQL_FETCH_PRIOR
SQL_FETCH_FIRST
SQL_FETCH_LAST
SQL_FETCH_ABSOLUTE
SQL_FETCH_RELATIVE
which are generic enough for almost every Database
Again like my first proposal we could have these entered in as attribs or
we could have a simple two param sub like this
fetch_scroll($oreinetation,$offset);
or a three one like this
fetch_scroll($oreinetation,$offset,{attribs});
I will work both out and get back to the list one it the only proble I see
is knowning were one is in the cusor
cheers
On Fri, Mar 14, 2008 at 08:53:04AM -0400, John Scoles wrote:
So my proposal is to stub in
fetch_scroll
in DBI
and let the DBD drivers write their own implementation
I'd _much_ rather one or driver implemented the functionality as
driver-private methods before we try to define the DBI by guesswork.
I'd also _much_ rather fetch_scroll() wasn't added until a fallback
implementation existed for it in the DBI. In the same way that
execute_array() and related methods weren't added until there was a
fallback implementation in the DBI.
It can't be that hard to add read-only cursor support.
The guts of it would be something like...
- A $sth->{FetchedRows} attribute containing an array ref
- dbih_get_fbav() would see that attribute and instead of
reusing the same row buffer would allocate a new one and push it
on the end of the $sth->{FetchedRows} array.
- fetch_scroll() then just needs to have a concept of 'current row'
and can use $sth->{Active} to tell if there may be more to fetch.
This would be the same as "bind_param_inout_array" which is stubbed in
but
not implemented in DBI
That's an (unfortunate) exception to the rule :)
Tim.