- my $sth = $self->{dbh}->prepare($sql) || die "prepare: $sql; ".$self->{dbh}->errstr();
- $sth->execute($field,$from_ord,$rows,$offset) || die "execute: $sql; ".$self->{dbh}->errstr();
+ @sql_args = ( $field, $from_ord );
+ push @sql_args, $filter if ($filter);
+
+ my $sql = qq{
+ select item,display,data.count as count
+ from $tables_sql
+ where name = ?
+ and data.ord > ?
+ $where_sql
+ order by data.ord
+ };
+
+ # fix SQLite problem which doesn't allow placeholders in limit and offset
+ # http://thread.gmane.org/gmane.comp.db.sqlite.general/9707
+ $sql .= "limit $rows offset $offset";
+
+ my $sth = $self->{dbh}->prepare($sql) || confess "prepare: $sql; ".$self->{dbh}->errstr();
+ $sth->execute(@sql_args) || confess "execute: $sql; ".join("|",@sql_args)." ".$self->{dbh}->errstr();