Why can't you use that if fewer than 11 rows are returned? That code will work just fine, regardless of the number of rows.
You want to select the oldest 11 rows (after a certain date), without ordering by date and time... But if you don't order by date and time, how do you know which are the oldest??
To fill out your code a little more:
#!perl -w
use strict;
use DBI; # note: must be uppercase
my $dbh = DBI->connect("dbi:ODBC:burlee", "username", "password")
or die "Can't connect to database: $DBI::errstr\n";
{
# $sth is a static variable for get_sport()
# it's private to get_sport(), and keeps its value between calls
my $sth;
# get_sport($sport, $import)
# returns a list of array references
sub get_sport {
my ($sport, $import) = @_;
my $path = "d:/text/time/$sport.txt";
open(TEXT, $path) or die "Can't open $path: $!\n";
my $date = <TEXT>;
chomp $date;
close(TEXT);
# prepare, if it wasn't prepared before
$sth ||= $dbh->prepare(<<" EndOfSQL");
select *
from DATA_DB_ENTRY__ASTROS_STAGING
where TS_DATE >= ?
and IMPORTACE = ?
order by TS_DATE asc, TS_TIME asc
EndOfSQL
$sth->execute($date, $import);
my @rows;
while (my(@row) = $sth->fetchrow_array()) {
push @rows, [@row];
if (@rows == 11) {
$sth->finish();
last;
}
}
return @rows;
}
}
The most important thing here is adding rows to the results list one at a time, and stopping if you get to 11.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.