diff options
| author | fukachan <fukachan> | 2001-03-15 15:24:23 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-03-15 15:24:23 +0000 |
| commit | 2ffa0e8cb666b1826df83483c5259010db6358d9 (patch) | |
| tree | 7a66029d512756af9325ccb4923c286d27a3522e | |
| parent | e68a1cdf02dccfbb04e991a6507bd0bb82025610 (diff) | |
| download | fml8-2ffa0e8cb666b1826df83483c5259010db6358d9.tar.gz fml8-2ffa0e8cb666b1826df83483c5259010db6358d9.tar.bz2 fml8-2ffa0e8cb666b1826df83483c5259010db6358d9.zip | |
implemente primitive getline() call to MySQL and the cheker of it.
fix the name to toymode.pm not .pl
TODO is things not yet imported from fml 4.0.
| -rw-r--r-- | fml/lib/IO/Adapter/MySQL/TODO (renamed from fml/lib/IO/Adapter/MySQL/toymodel.pl) | 114 | ||||
| -rw-r--r-- | fml/lib/IO/Adapter/MySQL/toymodel.pm | 140 | ||||
| -rwxr-xr-x | regress/base/mysql_io.pl | 15 |
3 files changed, 155 insertions, 114 deletions
diff --git a/fml/lib/IO/Adapter/MySQL/toymodel.pl b/fml/lib/IO/Adapter/MySQL/TODO index 78a58b2e..1fc250aa 100644 --- a/fml/lib/IO/Adapter/MySQL/toymodel.pl +++ b/fml/lib/IO/Adapter/MySQL/TODO @@ -1,114 +1,3 @@ -#-*- perl -*- -# -# Copyright (C) 2000 Ken'ichi Fukamachi -# All rights reserved. -# -# $Id$ -# - - -package IO::Adapter::MySQL::toymodel; - - -use strict; -use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD); -use Carp; - -=head1 NAME - -IO::Adapter::MySQL::toymodel - toymodel with SQL - -=head1 SYNOPSIS - -=head1 DESCRIPTION - -=head1 METHODS - -=head2 C<open($args)> - -=head2 C<close($args)> - -=cut - - -# Descriptions: -# Arguments: $self $args -# Side Effects: -# Return Value: none -sub open -{ - my ($self, $args) = @_; - - use DBI; - use DBD::mysql; - - my $driver = 'mysql'; - my $database = $args->{ database_name } || 'fml'; - my $host = $args->{ sql_server } || 'localhost'; - my $dsn = "DBI:$driver:$database:$host"; - my $user = $args->{ sql_user } || 'fml' || ''; - my $password = $args->{ sql_user_password} || ''; - - my $dbh = DBI->connect($dsn, $user, $password); - unless (defined $dbh) { - $args->{'error'} = $DBI::errstr; - return undef; - } - - $self->{ _dbh } = $dbh; -} - - -# Descriptions: -# Arguments: $self $args -# Side Effects: -# Return Value: none -sub close -{ - my ($self, $args) = @_; - my $res = $self->{ _res }; - my $dbh = $self->{ _dbh }; - - $res->finish if defined $res; - $dbh->disconnect if defined $dbh; -} - - -=head2 C<execute($args) - -execute sql query. - - $args->{ - query => sql_query_statment, - }; - -=cut - -sub execute -{ - my ($self, $args) = @_; - my $dhb = $self->{ _dbh }; - - if (defined $dbh) { - my $res = $dbh->prepare($query); - $res->execute; - - unless (defined $res) { - $self->error_reason( $DBI::errstr ); - return undef; - } - else { - return $res; - } - } - else { - return undef; - } -} - - - - ##################################################################### @@ -473,6 +362,3 @@ sub Dump } print "--- end\n"; } - - -1; diff --git a/fml/lib/IO/Adapter/MySQL/toymodel.pm b/fml/lib/IO/Adapter/MySQL/toymodel.pm new file mode 100644 index 00000000..dbf4bfdf --- /dev/null +++ b/fml/lib/IO/Adapter/MySQL/toymodel.pm @@ -0,0 +1,140 @@ +#-*- perl -*- +# +# Copyright (C) 2000 Ken'ichi Fukamachi +# All rights reserved. +# +# $Id$ +# + + +package IO::Adapter::MySQL::toymodel; + + +use strict; +use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD); +use Carp; + +=head1 NAME + +IO::Adapter::MySQL::toymodel - toymodel with SQL + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +sub new +{ + my ($self) = @_; + my ($type) = ref($self) || $self; + my $me = {}; + return bless $me, $type; +} + + +=head2 C<open($args)> + +=head2 C<close($args)> + +=cut + + +# Descriptions: +# Arguments: $self $args +# Side Effects: +# Return Value: none +sub open +{ + my ($self, $args) = @_; + + use DBI; + use DBD::mysql; + + my $driver = 'mysql'; + my $database = $args->{ database_name } || 'fml'; + my $host = $args->{ sql_server } || 'localhost'; + my $dsn = "DBI:$driver:$database:$host"; + my $user = $args->{ sql_user } || 'fml' || ''; + my $password = $args->{ sql_user_password} || ''; + + my $dbh = DBI->connect($dsn, $user, $password); + unless (defined $dbh) { + $args->{'error'} = $DBI::errstr; + return undef; + } + + $self->{ _dbh } = $dbh; +} + + +# Descriptions: +# Arguments: $self $args +# Side Effects: +# Return Value: none +sub close +{ + my ($self, $args) = @_; + my $res = $self->{ _res }; + my $dbh = $self->{ _dbh }; + + $res->finish if defined $res; + $dbh->disconnect if defined $dbh; +} + + +=head2 C<getline()> + +=cut + +sub getline +{ + my ($self, $args) = @_; + + unless ($self->{ _res }) { + $self->execute( { query => 'select address from ml' } ); + } + + my @row = $self->{ _res }->fetchrow_array; + $row[0]; +} + + +=head2 C<execute($args) + +execute sql query. + + $args->{ + query => sql_query_statment, + }; + +=cut + +sub execute +{ + my ($self, $args) = @_; + my $dbh = $self->{ _dbh }; + my $query = $args->{ query }; + + if (defined $dbh) { + my $res = $dbh->prepare($query); + $res->execute; + + unless (defined $res) { + $self->error_reason( $DBI::errstr ); + return undef; + } + else { + $self->{ _res } = $res; + return $res; + } + } + else { + return undef; + } +} + + +1; diff --git a/regress/base/mysql_io.pl b/regress/base/mysql_io.pl new file mode 100755 index 00000000..1339e65b --- /dev/null +++ b/regress/base/mysql_io.pl @@ -0,0 +1,15 @@ +use IO::Adapter::MySQL::toymodel; + +my $obj = new IO::Adapter::MySQL::toymodel; + +$obj->open({ + sql_user => 'fukachan', + sql_user_password => '', +}); + +while ($_ = $obj->getline) { + print $_, "\n"; +} + +$obj->close; + |
