Collection::AutoSQL - class for collections of data, stored in database.
use Collection::AutoSQL; my $metaobj = new Collection::AutoSQL:: dbh => $dbh, #database connect table => 'metadata', #table name field=> 'mid', #key field (IDs), usually primary,autoincrement cut_key =>1, #delete field mid from readed records, #or delete_key=>1 sub_ref => #callback for create objects for readed records sub { my $id = shift; new MyObject:: shift } dbtype => 'pg' # set type of DataBase to PostgreSQL (default: mysql)
Provide simply access to records, with unique field.
For exampe:
HAVE mysql table: mysql> \u orders mysql> select * from beers; +-----+--------+-----------+ | bid | bcount | bname | +-----+--------+-----------+ | 1 | 1 | heineken | | 2 | 1 | broadside | | 3 | 2 | tiger | | 4 | 2 | castel | | 5 | 3 | karhu | +-----+--------+-----------+ 5 rows in set (0.00 sec) my $beers = new Collection::AutoSQL:: dbh => $dbh, #database connect table => 'beers', #table name field => 'bid', #key field (IDs), usually primary,autoincrement cut_key => 1; #delete field 'bid' from readed records, my $heineken = $beers->fetch_one(1); #SELECT * FROM beers WHERE bid in (1) print Dumper($heineken); ... $VAR1 = { 'bcount' => '1', 'bname' => 'heineken' }; ... $heineken->{bcount}++; my $karhu = $beers->fetch(5); #SELECT * FROM beers WHERE bid in (5) $karhu->{bcount}++; $beers->store; #UPDATE beers SET bcount='2',bname='heineken' where bid=1 #UPDATE beers SET bcount='4',bname='karhu' where bid=5 my $hash = $beers->fetch({bcount=>[4,1]}); #SELECT * FROM beers WHERE ( bcount in (4,1) ) print Dumper($hash); ... $VAR1 = { '2' => { 'bcount' => '1', 'bname' => 'broadside' }, '5' => { 'bcount' => '4', 'bname' => 'karhu' } }; ...
Return current $dbh.
Return ref to ARRAY of readed IDs.
convert array of terms to scructs with type field
Got { test => 1, guid => $two },'key'
Return array:
( { 'values' => [1], 'term' => '=', 'field' => 'test' }, { 'values' => ['4D56A984-0B5E-11DC-8292-3DE558089BC5'], 'term' => '=', 'field' => 'guid', 'type' => 'varchar' } )
return <where> expression or undef else
Return list of ids
params:
flow - Flow:: object for streaming results onpage - [pagination] count of ids on page page - [pagination] requested page ( depend on onpage) exp - ref to expression for select desc - revert sorting ([1,0]) where - custom where if needed, instead expr ['where sring', $query_param1,..] query - custom query uniq - set uniq flag ( eq GROUP BY (key) ) order - ORDER BY field
return: [array] - array of ids
if used flow param: "string" - if error undef - ok
flow
expamles:
$c->list_ids() #return [array of ids] $c->list_ids(flow=>$flow, exp=>{ type=>"t1", "date<"=>12341241 }, page=>2, onpage=>10, desc=>1 )
Collection::ActiveRecord, Collection, README
Zahatski Aliaksandr, <zag@cpan.org>
Copyright (C) 2005-2011 by Zahatski Aliaksandr
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
To install Collection, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Collection
CPAN shell
perl -MCPAN -e shell install Collection
For more information on module installation, please visit the detailed CPAN module installation guide.