summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-03-15 15:24:23 +0000
committerfukachan <fukachan>2001-03-15 15:24:23 +0000
commit2ffa0e8cb666b1826df83483c5259010db6358d9 (patch)
tree7a66029d512756af9325ccb4923c286d27a3522e
parente68a1cdf02dccfbb04e991a6507bd0bb82025610 (diff)
downloadfml8-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.pm140
-rwxr-xr-xregress/base/mysql_io.pl15
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;
+