Query: ropkg::dbcollection
OS: debian
Section: 3pm
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
RoPkg::DBCollection(3pm) User Contributed Perl Documentation RoPkg::DBCollection(3pm)NAMERoPkg::DBCollection - base class who can be used for collections of database objectsVERSION0.1.3DESCRIPTIONRoPkg::DBCollection is a class who can be used as a base class for database collection of objects. Is used by RoPkg::Simba::Mirrors ,RoPkg::Simba::Commands and RoPkg::Simba::Excludes. This class should not be used directly in applications but derived.SUBROUTINES/METHODS new() The class constructor. Accepts a hash with parameters. The parameters who can be passed to new() are: dbo - database object (instance of RoPkg::DB) dbo_method - database method (for use with RoPkg::DB) table - the sql table name where the objects data can be found If you don't specify the dbo and dbo_method parameters, a Param::Missing exception is raised. dbh() returns the database handler (DBI object) used by the class. _count($fields) Returns the number of records who match the fields specified in $fields. This method should be overriden by the child classes. The $fields must me specified in SQL::Abstract format. Please refer to the SQL::Abstract documentation for more details about $fields format. _get($class_name, $fields, $order_by) Returns a array of initialized objects. The values are read from the database. $class_name is the name of the class who's gonna be instan- ciated. When creating the class instance dbo and dbo_method parameters are passed to the new() method. The records from the database must match the $fields parameter and the order is given by $order_by. For more details of these 2 parameters please refer to SQL::Abstract docu- mentation. Exceptions throwed: Param::Missing - when $class_name has not been specified Param::Wrong - when $class_name is not a class name DB::NoResults - when the query returned 0 resultsSYNOPSISpackage RoPkg::Tester; use strict; use warnings; use Scalar::Util qw(blessed); use RoPkg::Exceptions; use RoPkg::DBCollection; use vars qw(@ISA); @ISA=qw(RoPkg::DBCollection); sub new { my ($class, %opt) = @_; my $self; $self = $class->SUPER::new(%opt); $self->{table} = 'Mirrors'; return $self; } sub Count { my ($self) = @_; if (!blessed($self)) { OutsideClass->throw( error => 'Called outside class instance', pkg_name => 'RoPkg::Tester', ); } return $self->_count(); } sub Get { my ($self, $fields) = @_; if (!blessed($self)) { OutsideClass->throw( error => 'Called outside class instance', pkg_name => 'RoPkg::Tester' ); } return $self->_get('RoPkg::Simba::Mirror'); } 1; sub main { my ($dbc, $dbp); $dbp = new RoPkg::DB(); $dbp->Add( 'dbi:mysql:database=mirrors_db;host=localhost', 'root', '', 'mirrors' ); $dbc = new RoPkg::Tester( dbo => $dbp, dbo_method => 'db_mirrors' ); print $dbc->Count(),$/; my @mirrors = $dbc->Get(); } main();DIAGNOSTICSThis module comes with tests. To run them, unpack the source and use 'make test' command.PERL CRITICThis modules is perlcritic level 2 compliant (with 1 exception)CONFIGURATION AND ENVIRONMENTThis module does not use any configuration files or environment variables. However, it is possible that some dependencies to do so. Please read the man page of each dependency to find out more information.DEPENDENCIESThis module use the following modules: *) SQL::Abstract *) DBI *) Scalar::Util *) RoPkgINCOMPATIBILITIESNone known to the authorBUGS AND LIMITATIONSNone known to the authorSEE ALSORoPkg::Exceptions RoPkg::DB RoPkg::DBObject RoPkg::Simba::MirrorsAUTHORSubredu Manuel <diablo@iasi.roedu.net>LICENSE AND COPYRIGHTCopyright (C) 2006 Subredu Manuel. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The LICENSE file contains the full text of the license. perl v5.8.8 2006-06-09 RoPkg::DBCollection(3pm)