Jeff,

The problem I'm experiencing may be to do with the following from
SQL::Abstract::Limit:

=====
select( $table, [EMAIL PROTECTED], $where, [ [EMAIL PROTECTED], [ $rows, [ 
$offset ], [ $dialect ]
] ] )

    Same as SQL::Abstract::select, but accepts additional $rows, $offset and
$dialect parameters.

    The $order parameter is required if $rows is specified.
=====

and LiveGrid containing:

=====
# I think order needs to be settable in query_database
    my @order    = ();

    my( $stmt, @bind ) = $abstract->select( $table_name
                                          , $fields
                                          , $where
                                          , [EMAIL PROTECTED]
                                          , $rows
                                          , $offset
                                          );
=====

i.e. no order specified. I tried in SQL::Abstract::Limit and it generates
SQL that does not return the correct rows (as quoted in my previous email)
unless "order" is specified.

Martin
--
Martin J. Evans
Easysoft Ltd, UK
Development

On 16-Sep-2005 Martin J. Evans wrote:
> Jeff,
> 
> Nice one.
> 
> However, it does not quite work with my DBD and database. What I see is the
> first 70 rows repeated as I scroll through the table. The SQL being executed
> does not seem correct:
> 
> select * from
> (
>  select top 70 * from
>  (
>    select top 70 col,col from table
>  ) as foo
> ) as bar
> 
> then when you go past the 70th row I get variations like:
> 
> select * from
> (
>  select top 70 * from
>  (
>    select top 350 col,col from table
>  ) as foo
> ) as bar
> 
> which obviously returns the same first 70 rows.
> 
> I'm investigating. I think the issue may be in SQL-Abstract-Limit. Do you
> have
> any ideas?
> 
> Martin
> --
> Martin J. Evans
> Easysoft Ltd, UK
> Development
> 
> 
> On 14-Sep-2005 Jeff Zucker wrote:
>> I've created a module that marries DBI with AJAX to support LiveGrids - 
>> dynamically updateable portions of web pages that work like google 
>> maps.  As you scroll through the grid, the contents are buffered on the 
>> client-side, and limited on the server-side and only small sections are 
>> refreshed at any one time.  This means that very large databases 
>> (anything accessible via DBI) can be served without either querying or 
>> sending more than small chunks for each request.
>> 
>> You can create a LiveGrid server as a CGI or mod_perl script with just a 
>> few lines of perl code and create a LiveGrid client with just a few 
>> lines of  JavaScript (included with the distro).
>> 
>> DBIx::LiveGrid is based on the open source Rico and Prototype AJAX 
>> libraries and optionally makes use of SQL::Abstract and 
>> SQL::Abstract::Limit to construct queries, limits, and offsets.
>> 
>> For a demo of a LiveGrid, see http://openrico.org/rico/livegrid.page.
>> 
>> For a bit more about the modules, see: 
>> http://www.perlmonks.org/?node_id=492067.
>> 
>> To grab the tarball: 
>> http://www.vpservices.com/jeff/programs/DBIx-LiveGrid-0.01.tar.gz
>> 
>> I'd value all comments and criticisms, namespace suggestions, etc.
>> 
>> -- 
>> Jeff

Reply via email to