gitpan / algorithm-dependency-source-dbi Goto Github PK
View Code? Open in Web Editor NEWRead-only release history for Algorithm-Dependency-Source-DBI
Home Page: http://metacpan.org/release/Algorithm-Dependency-Source-DBI
License: Other
Read-only release history for Algorithm-Dependency-Source-DBI
Home Page: http://metacpan.org/release/Algorithm-Dependency-Source-DBI
License: Other
NAME Algorithm::Dependency::Source::DBI - Database source for Algorithm::Dependency SYNOPSIS use DBI; use Algorithm::Dependency; use Algorithm::Dependency::Source::DBI; # Load the data from a database my $data_source = Algorithm::Dependency::Source::DBI->new( dbh => DBI->connect('dbi:SQLite:sqlite.db'), select_ids => 'select name from stuff', select_depends => 'select from, to from m2m_deps', ); # Create the dependency object, and indicate the items that are already # selected/installed/etc in the database my $dep = Algorithm::Dependency->new( source => $data_source, selected => [ 'This', 'That' ] ) or die 'Failed to set up dependency algorithm'; # For the item 'Foo', find out the other things we also have to select. # This WON'T include the item we selected, 'Foo'. my $also = $dep->depends( 'Foo' ); print $also ? "By selecting 'Foo', you are also selecting the following items: " . join( ', ', @$also ) : "Nothing else to select for 'Foo'"; # Find out the order we need to act on the items in. # This WILL include the item we selected, 'Foo'. my $schedule = $dep->schedule( 'Foo' ); DESCRIPTION The Algorithm::Dependency module has shown itself to be quite reliable over a long period of time, as well as relatively easy to setup and use. However, recently there has been an increasing use of things like DBD::SQLite to store and distribute structured data. Algorithm::Dependency::Source::DBI extends Algorithm::Dependency by providing a simple way to create dependency objects that pull their data from a database directly. METHODS new my $simple = Algorithm::Dependency::Source::DBI->new( dbh => $dbi_db_handle, select_ids => 'select name from stuff', select_depends => 'select from, to from m2m_deps', ); my $complex = Algorithm::Dependency::Source::DBI->new( dbh => $dbi_db_handle, select_ids => [ 'select name from stuff where foo = ?', 'bar' ], select_depends => [ 'select from, to from m2m_deps where from = ?', 'bar' ], ); The "new" constructor takes three named named params. The "dbh" param should be a standard DBI database connection. The "select_ids" param is either a complete SQL string, or a reference to an "ARRAY" containing a SQL string with placeholders and matching variables. When executed on the database, it should return a single column containing the complete set of all item identifiers. The "select_depends" param is either a complete SQL string, or a reference to an "ARRAY" containing a SQL string with placeholders and matching variables. When executed on the database, it should return two columns containing the complete set of all dependencies, where identifiers in the first-column depends on identifiers in the second-column. Returns a new Algorithm::Dependency::Source::DBI object, or dies on error. dbh The "dbh" accessor returns the database handle provided to the constructor. select_ids The "select_ids" accessor returns the SQL statement provided to the constructor. If a raw string was provided, it will be returned as a reference to an "ARRAY" containing the SQL string and no params. select_depends The "select_depends" accessor returns the SQL statement provided to the constructor. If a raw string was provided, it will be returned as a reference to an "ARRAY" containing the SQL string and no params. SUPPORT To file a bug against this module, use the CPAN bug tracking system <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Algorithm-Dependency-Sou rce-DBI> For other comments, contact the author. AUTHOR Adam Kennedy <[email protected]> SEE ALSO Algorithm::Dependency, <http://ali.as/> COPYRIGHT Copyright 2007 - 2009 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.