On 15/03/12 12:35, Tim Bunce wrote:

There's actually an (almost completely undocumented) more_results()
method that's meant for that kind of thing. I was rather surprised
to find it wasn't documented as I'm pretty sure we thrashed out the
semantics some time ago.

[later] Wow, "some time ago" was 2004 :)
See 
http://markmail.org/thread/i7drouwtpdiybjzn#query:+page:1+mid:p4dy4uv3t2kpku56+state:results
The "example implementation" in there assumed $sth->prepare works.
Given current realities the more_results method would be like:
     $sth = $sth->{Database}->prepare($sql);
     $sth->execute;
     return $sth; # caller must use this returned handle

That thread was actually a lot longer than markmail shows:

http://www.nntp.perl.org/group/perl.dbi.dev/2004/02/msg3062.html
http://www.nntp.perl.org/group/perl.dbi.dev/2004/03/msg3221.html

Various drivers now have their own implementation:

syb_more_results:
http://search.cpan.org/~mewp/DBD-Sybase-1.14/Sybase.pm#Handling_Multiple_Result_Sets

odbc_more_results:
http://search.cpan.org/~mjevans/DBD-ODBC-1.35/ODBC.pm#odbc_more_results

sqlite_allow_multiple_statements:
http://search.cpan.org/~adamk/DBD-SQLite-1.35/lib/DBD/SQLite.pm#Processing_Multiple_Statements_At_A_Time

more_results:
http://search.cpan.org/~capttofu/DBD-mysql-4.020/lib/DBD/mysql.pm#MULTIPLE_RESULT_SETS

teradata also has tdat_more_results

There are probably more, these are just the ones I've used.

My recollection is that the discussion found that handling multiple result sets 
was more complicated than some people first thought and I guess that is why it 
never really came to fruition. In particular:

http://www.nntp.perl.org/group/perl.dbi.dev/2004/03/msg3243.html

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

Reply via email to