diff options
| author | fukachan <fukachan> | 2001-03-18 11:39:59 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-03-18 11:39:59 +0000 |
| commit | b8b559c6e59db55617c2ec48861030f761e8c29e (patch) | |
| tree | 371e00375d37113cf30a1bb96debf67935111212 | |
| parent | 8bed8a63a670468e298323bb007d80c87a125cd1 (diff) | |
| download | fml8-b8b559c6e59db55617c2ec48861030f761e8c29e.tar.gz fml8-b8b559c6e59db55617c2ec48861030f761e8c29e.tar.bz2 fml8-b8b559c6e59db55617c2ec48861030f761e8c29e.zip | |
fix close() bug
define add( $addr ) and delete( $addr ) method
| -rw-r--r-- | fml/lib/IO/Adapter/MySQL.pm | 24 | ||||
| -rwxr-xr-x | regress/mysql/getline.pl | 55 |
2 files changed, 64 insertions, 15 deletions
diff --git a/fml/lib/IO/Adapter/MySQL.pm b/fml/lib/IO/Adapter/MySQL.pm index 8614f35b..8eb1859b 100644 --- a/fml/lib/IO/Adapter/MySQL.pm +++ b/fml/lib/IO/Adapter/MySQL.pm @@ -117,6 +117,8 @@ sub close $res->finish if defined $res; $dbh->disconnect if defined $dbh; + delete $self->{ _res }; + delete $self->{ _dbh }; } @@ -256,4 +258,26 @@ sub error } +=head2 C<add()> + +=cut + +sub add +{ + my ($self, $args) = @_; + my $query = $self->_schema_configure('add'); + $query = sprintf($query, $args); + $self->execute({ query => $query }); +} + + +sub delete +{ + my ($self, $args) = @_; + my $query = $self->_schema_configure('delete'); + $query = sprintf($query, $args); + $self->execute({ query => $query }); +} + + 1; diff --git a/regress/mysql/getline.pl b/regress/mysql/getline.pl index d3f08897..1a746321 100755 --- a/regress/mysql/getline.pl +++ b/regress/mysql/getline.pl @@ -8,7 +8,11 @@ use Carp; use IO::MapAdapter; my $map = 'mysql:toymodel'; -my $q = "select address from ml where ml='elena' and file='members'"; + +my $q_getline = "select address from ml where ml='elena' and file='members'"; +my $q_add = "insert into ml values ('elena', 'members', '\%s', 0, 0)"; +my $q_delete = "delete from ml where ml='elena' and address='\%s'"; + my $map_params = { $map => { config => { @@ -19,9 +23,10 @@ my $map_params = { table => 'ml', }, query => { - getline => $q, - get_next_value => $q, - add => "insert into ml values ()", + getline => $q_getline, + get_next_value => $q_getline, + add => $q_add, + delete => $q_delete, }, }, }; @@ -29,19 +34,39 @@ my $map_params = { my $obj = new IO::MapAdapter ($map, $map_params); -if (defined $obj) { - if (defined $obj->open()) { - while ($_ = $obj->getline()) { - print $_, "\n"; +_dump($obj); print "\n"; + +$obj->open(); +$obj->add( 'rudo' ); +$obj->close(); + +_dump($obj); print "\n"; + +$obj->open(); +$obj->delete( 'rudo' ); +$obj->close(); + +_dump($obj); print "\n"; + +exit 0; + + +sub _dump +{ + my ($obj) = @_; + + if (defined $obj) { + if (defined $obj->open()) { + while ($_ = $obj->getline()) { + print $_, "\n"; + } + $obj->close; + } + else { + croak("cannot open()"); } - $obj->close; } else { - croak("cannot open()"); + croak("cannot make object"); } } -else { - croak("cannot make object"); -} - -exit 0; |
