#!perl -w
use DBI;
use Config qw(%Config);
$| = 1; # autoflush
use Ruby::Run;
puts "DBI demo";
pcfg = Perl["%Config"];
dbh = Perl["DBI"].connect("dbi:DBM:", Perl::undef, Perl::undef,
{ "AutoCommit" => 0, "RaiseError" => 1}.to_perl());
puts "Initializing ...";
dbh.do("CREATE TABLE test (name VARCHAR PRIMARY KEY, value VARCHAR NOT NULL)");
sth = dbh.prepare("INSERT INTO test VALUES(?,?)");
pcfg.each_pair {|key,value|
sth.execute(key, value);
}
sth = dbh.prepare("SELECT * FROM test WHERE name LIKE ?".to_perl());
puts "Selecting from Perl::Config,",
"please input a key of the config hash (the wildcard '*' is available).",
"CTRL-D to exit from this program.";
print "> ";
STDIN.each do |line|
sth.execute(line.gsub(/\*/, '%').chomp());
while( (row = sth.fetchrow_hashref()).defined? )
puts "%s=%s" % [ row["name"], row["value"] ];
end
print "> ";
end
puts "\nCreaning up ...";
dbh.do("DROP TABLE test");