summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-03-18 11:39:59 +0000
committerfukachan <fukachan>2001-03-18 11:39:59 +0000
commitb8b559c6e59db55617c2ec48861030f761e8c29e (patch)
tree371e00375d37113cf30a1bb96debf67935111212
parent8bed8a63a670468e298323bb007d80c87a125cd1 (diff)
downloadfml8-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.pm24
-rwxr-xr-xregress/mysql/getline.pl55
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;