DBD-Informix

 view release on metacpan or  search on metacpan

examples/fetchscroll.pl  view on Meta::CPAN

# @(#)$Id: fetchscroll.pl,v 1.4 2003/01/13 23:58:53 jleffler Exp $
#
# Simulate proposed scroll cursor support for Perl DBI

use strict;
use DBI;
use Carp;

my $debug = 0;

sub fetchrow_scroll_arrayref($$$$)
{
	my($sth, $ctl, $key, $val) = @_;
	my($cur, $max, $done, $aref) = ($$ctl{currow}, $$ctl{maxrow}, $$ctl{finished}, $$ctl{array});
	my(@arr) = @$aref;
	my($inc, $abs) = (0, $cur);
	$key = lc $key;
	if    ($key eq 'first')    { $abs = 1; }
	elsif ($key eq 'next')     { $inc = +1; }
	elsif ($key eq 'prev')     { $inc = -1; }
	elsif ($key eq 'relative') { $inc = $val; }

examples/fetchscroll.pl  view on Meta::CPAN

	}
	print "\n";
}

# Defined here since referenced in test_scroll_query_sequence()
my @data =  sort "systables", "syscolumns", "sysindexes", "sysconstraints", "syschecks", "syscolauth",
            "systabauth", "syssynonyms", "sysdefaults", "sysprocedures", "sysprocauth", "sysviews",
            "sysroles", "sysroleauth", "sysusers", "systriggers", "sysprocbody", "systrigbody",
            "sysxtdtypes", "sysxtdtypeauth", "sysxtddesc", "sysreferences", "syscoldepends", "sysdepends";

sub test_scroll_query_sequence($%)
{
	my ($sth, %ops) = @_;
	my $ctl = { array => [ undef ], maxrow => 0, currow => 0, finished => 0 }; 
	my $i = 0;
	my $fail = 0;
	pr_hash(%$ctl) if $debug;
	foreach my $seq (sort { $a <=> $b } keys %ops)
	{
		my(@tst) = @{$ops{$seq}};
		my($key) = $tst[0];



( run in 1.181 second using v1.01-cache-2.11-cpan-65fba6d93b7 )