> 
> 
> >> 
> >> Also, I'd like DBI v2 to have an official method to 'reset' a
> >> statement handle back to its virgin state so that an official 
> >> more_results() method can be added.
> >
> > That would be good -- and it would be good to consistently 
> handle it 
> > -- as best as possible.
> > 
> > 
> > > I think DBD::ODBC and DBD::Sybase have this already. DBD::Pg
> > > may do. DBD::mysql is going to need it etc etc. So the DBI 
> > > needs to support it so it's done consistently and to make 
> > > life easier for future driver authors.
> > 
> > Yes!
> > 
> > > 
> > > I'd appreciate it if all driver authors who have written such
> > > code to send
> > > (just) me a copy of the function so I can get an idea what 
> > > you're all doing.
> 
> DBD::Teradata has a similar mechanism, but its 
> an $sth attribute, rather than a method call, ie,
> 
> while ($sth->{tdat_more_results}) {
>     while ($row = $sth->fetchrow_arrayref) {
> #do some stuff
>     }
> }

That's the same as DBD::ODBC (odbc_more_results).

> 
> In addition, the $sth has tdat_stmt_num and tdat_stmt_info 
> attributes which provide the current statement number and a 
> hashref of statement information (activity type, activity 
> count, the fields in the output $row which are filled by the 
> current statement, etc.) See 
> http://www.presicient.com/tdatdbd/#mstmts and 
> 
http://www.presicient.com/tdatdbd/#stinfo for details.

> Which raises another issue: at present DBD::Teradata allocates a $row
array with a size equal to the sum of the number of > columns for each
statement. I've tried adjusting the NUM_OF_FIELDS on the fly to represent
just the number of fields for >  > the current statement, but DBI carps. And
of course, it presents some issues for providing statement metadata. Any
chance > the more_results() work will provide a more elegant solution ?

Actually, check out DBD::ODBC.  If you need help, let me know, but I did do
some hacks that I got from DBD:Sybase which clears out NUM_OF_FIELDS, etc...

Jeff


Reply via email to