use strict;
use DBI;
use XML::Generator::DBI;
use XML::Handler::YAWriter;
####
my $dbh = DBI->connect(
qw(DBI:vendor:database:host user pass),
{RaiseError=>1},
);
##
##
my $handler = XML::Handler::YAWriter->new(AsFile => 'foo.xml');
##
##
my $generator = XML::Generator::DBI->new(
Handler => $handler,
dbh => $dbh,
Indent => 1,
);
##
##
$generator->execute('select bar,baz from foo');
##
##
use strict;
use DBI;
use XML::Generator::DBI;
use XML::XPath;
use XML::XPath::Builder;
##
##
my $dbh = DBI->connect(
qw(DBI:vendor:database:host user pass),
{RaiseError=>1},
);
##
##
my $handler = XML::XPath::Builder->new();
##
##
my $generator = XML::Generator::DBI->new(
Handler => $handler,
dbh => $dbh,
);
##
##
my $xp = $generator->execute('select bar,baz from foo');
##
##
my $nodeset = $xp->find('/database/select/row/bar');
print $_->string_value, "\n" for $nodeset->get_nodelist;
##
##
use strict;
use DBI;
use XML::Generator::DBI;
use XML::Filter::SAX1toSAX2;
use XML::Handler::HTMLWriter;
my $dbh = DBI->connect(
qw(DBI:vendor:database:host user pass),
{RaiseError=>1},
);
##
##
my $handler = XML::Handler::HTMLWriter->new();
##
##
my $filter = XML::Filter::SAX1toSAX2->new(Handler => $handler);
##
##
my $generator = XML::Generator::DBI->new(
Handler => $filter,
dbh => $dbh,
RootElement => 'html',
QueryElement => 'table',
RowElement => 'tr',
Indent => 1,
);
$generator->execute('select foo as td,bar as td from baz');
##
##
use strict;
use DBI;
use XML::Generator::DBI;
use XML::Filter::SAX1toSAX2;
use XML::Filter::XSLT;
use XML::SAX::Writer;
my $dbh = DBI->connect(
qw(DBI:vendor:database:host user pass),
{RaiseError=>1},
);
##
##
my $writer = XML::SAX::Writer->new();
my $xsl_filt = XML::Filter::XSLT->new(Handler => $writer);
my $sax_filt = XML::Filter::SAX1toSAX2->new(Handler => $xsl_filt);
my $generator = XML::Generator::DBI->new(
Handler => $sax_filt,
dbh => $dbh,
);
##
##
$xsl_filt->set_stylesheet_uri('foo.xsl');
$generator->execute('select bar,baz from foo');
##
##
use strict;
use DBI;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use XML::SAX::Writer;
use XML::Generator::DBI;
use XML::Filter::SAX1toSAX2;
use XML::Filter::XSLT;
##
##
my $style = 'dynamic.xsl';
my %field = (
name => 'artist.name as Artist',
album => 'album.title as Album',
title => 'song.title as Song',
year => 'album.year as Year',
);
##
##
print header, start_html, start_form,
checkbox_group(
-name => 'fields',
-values => [ keys %field ],
),
submit('go'), end_form,
;
##
##
if (param('go')) {
##
##
my @ok = map { $field{$_} } grep $field{$_}, param('fields');
##
##
die 'no valid fields selected' unless @ok;
my $select = join(',', @ok);
##
##
my $dbh = DBI->connect(
qw(DBI:vendor:mp3:host user pass),
{RaiseError=>1},
);
##
##
my $writer = XML::SAX::Writer->new();
my $xsl_filt = XML::Filter::XSLT->new(Handler => $writer);
my $sax_filt = XML::Filter::SAX1toSAX2->new(Handler => $xsl_filt);
my $generator = XML::Generator::DBI->new(
Handler => $sax_filt,
dbh => $dbh,
ShowColumns => 1,
);
##
##
die "could not open file $style" unless -r $style;
$xsl_filt->set_stylesheet_uri($style);
##
##
$generator->execute("
select $select
from song
inner join album on song.album_id=album.id
inner join artist on album.artist_id=artist.id
order by artist.name,album.year,album.title
");
}