rename DBIx::Custom::SQLite last_insert_id to last_inse...
...rt_rowid
... | ... |
@@ -1,10 +1,12 @@ |
1 | 1 |
package DBIx::Custom::SQLite; |
2 |
-use base 'DBIx::Custom::Basic'; |
|
3 | 2 |
|
4 | 3 |
use strict; |
5 | 4 |
use warnings; |
5 |
+ |
|
6 |
+use base 'DBIx::Custom::Basic'; |
|
6 | 7 |
use Carp 'croak'; |
7 | 8 |
|
9 |
+# Add format |
|
8 | 10 |
__PACKAGE__->add_format( |
9 | 11 |
datetime => __PACKAGE__->formats->{SQL99_datetime}, |
10 | 12 |
date => __PACKAGE__->formats->{SQL99_date}, |
... | ... |
@@ -14,6 +16,7 @@ __PACKAGE__->add_format( |
14 | 16 |
sub connect { |
15 | 17 |
my $self = shift; |
16 | 18 |
|
19 |
+ # Create data source |
|
17 | 20 |
if (!$self->data_source && (my $database = $self->database)) { |
18 | 21 |
$self->data_source("dbi:SQLite:dbname=$database"); |
19 | 22 |
} |
... | ... |
@@ -48,40 +51,38 @@ sub reconnect_memory { |
48 | 51 |
return $self; |
49 | 52 |
} |
50 | 53 |
|
51 |
-sub last_insert_id { |
|
54 |
+sub last_insert_rowid { |
|
52 | 55 |
my $self = shift; |
53 | 56 |
|
57 |
+ # Not connected |
|
54 | 58 |
croak "Not yet connected" unless $self->connected; |
55 | 59 |
|
56 |
- my $last_insert_id = $self->dbh->func('last_insert_rowid'); |
|
60 |
+ # Get last insert row id |
|
61 |
+ my $last_insert_rowid = $self->dbh->func('last_insert_rowid'); |
|
57 | 62 |
|
58 |
- return $last_insert_id; |
|
63 |
+ return $last_insert_rowid; |
|
59 | 64 |
} |
60 | 65 |
|
61 | 66 |
=head1 NAME |
62 | 67 |
|
63 | 68 |
DBIx::Custom::SQLite - DBIx::Custom SQLite implementation |
64 | 69 |
|
65 |
-=head1 Synopsys |
|
70 |
+=head1 SYNOPSYS |
|
66 | 71 |
|
67 | 72 |
use DBIx::Custom::SQLite; |
68 | 73 |
|
69 | 74 |
# New |
70 |
- my $dbi = DBIx::Custom::SQLite->new(user => 'taro', $password => 'kliej&@K', |
|
75 |
+ my $dbi = DBIx::Custom::SQLite->new(user => 'taro', $password => 'kl&@K', |
|
71 | 76 |
database => 'sample'); |
72 | 77 |
|
73 | 78 |
# Connect memory database |
74 | 79 |
my $dbi->connect_memory; |
75 | 80 |
|
76 |
-=head1 See DBIx::Custom and DBIx::Custom::Basic documentation at first |
|
77 | 81 |
|
78 |
-This class is L<DBIx::Custom::Basic> subclass. |
|
79 |
-and L<DBIx::Custom::Basic> is L<DBIx::Custom> subclass |
|
82 |
+=head1 METHODS |
|
80 | 83 |
|
81 |
-You can use all methods of L<DBIx::Custom::Basic> and <DBIx::Custom> |
|
82 |
-Please see L<DBIx::Custom::Basic> and <DBIx::Custom> documentation |
|
83 |
- |
|
84 |
-=head1 Methods |
|
84 |
+This class is L<DBIx::Custom::Basic> subclass. |
|
85 |
+You can use all methods of L<DBIx::Custom::Basic> |
|
85 | 86 |
|
86 | 87 |
=head2 connect |
87 | 88 |
|
... | ... |
@@ -103,33 +104,19 @@ Reconnect to memory databsse |
103 | 104 |
|
104 | 105 |
$dbi->reconnect_memory; |
105 | 106 |
|
106 |
-=head2 last_insert_id |
|
107 |
+=head2 last_insert_rowid |
|
107 | 108 |
|
108 | 109 |
Get last insert id |
109 | 110 |
|
110 |
- $last_insert_id = $dbi->last_insert_id; |
|
111 |
+ $last_insert_rowid = $dbi->last_insert_rowid; |
|
111 | 112 |
|
112 |
-The folloing is last_insert_id sample. |
|
113 |
+The folloing is last_insert_rowid sample. |
|
113 | 114 |
|
114 | 115 |
$dbi->insert('books', {title => 'Perl', author => 'taro'}); |
115 |
- $last_insert_id = $dbi->last_insert_id; |
|
116 |
+ $last_insert_rowid = $dbi->last_insert_rowid; |
|
116 | 117 |
|
117 | 118 |
This is equal to SQLite function |
118 | 119 |
|
119 | 120 |
last_insert_rowid() |
120 | 121 |
|
121 |
-=head1 Author |
|
122 |
- |
|
123 |
-Yuki Kimoto, C<< <kimoto.yuki at gmail.com> >> |
|
124 |
- |
|
125 |
-Github L<http://github.com/yuki-kimoto> |
|
126 |
- |
|
127 |
-I develope this module L<http://github.com/yuki-kimoto/DBIx-Custom> |
|
128 |
- |
|
129 |
-=head1 Copyright & lisence |
|
130 |
- |
|
131 |
-Copyright 2009 Yuki Kimoto, all rights reserved. |
|
132 |
- |
|
133 |
-This program is free software; you can redistribute it and/or modify it |
|
134 |
-under the same terms as Perl itself. |
|
135 |
- |
|
122 |
+=cut |
... | ... |
@@ -68,39 +68,29 @@ sub run { |
68 | 68 |
|
69 | 69 |
=head1 NAME |
70 | 70 |
|
71 |
-DBIx::Custom::TransactionScope - Transaction scope |
|
71 |
+DBIx::Custom::Transaction - Transaction |
|
72 | 72 |
|
73 | 73 |
=head1 SYNOPSYS |
74 |
- |
|
75 |
- use DBIx::Custom::SQLite; |
|
76 | 74 |
|
77 |
- # New |
|
78 |
- my $dbi = DBIx::Custom::SQLite->new(user => 'taro', $password => 'kliej&@K', |
|
79 |
- database => 'sample'); |
|
75 |
+ use DBIx::Custom::Transaction |
|
76 |
+ my $txn = DBIx::Custom::Transaction->new(dbi => DBIx::Custom->new); |
|
77 |
+ $txn->run(sub { ... }); |
|
80 | 78 |
|
81 |
- # Connect memory database |
|
82 |
- my $dbi->connect_memory; |
|
83 |
- |
|
84 | 79 |
=head1 ATTRIBUTES |
85 | 80 |
|
86 | 81 |
=head2 dbi |
87 | 82 |
|
83 |
+ $self = $txn->dbi($dbi); |
|
84 |
+ $dbi = $txn->dbi; |
|
85 |
+ |
|
88 | 86 |
=head1 METHODS |
89 | 87 |
|
90 | 88 |
=head2 run |
89 |
+ |
|
90 |
+ $txn->run( |
|
91 |
+ sub { |
|
92 |
+ # Transaction |
|
93 |
+ } |
|
94 |
+ ); |
|
91 | 95 |
|
92 |
-=head1 AUTHOR |
|
93 |
- |
|
94 |
-Yuki Kimoto, C<< <kimoto.yuki at gmail.com> >> |
|
95 |
- |
|
96 |
-Github L<http://github.com/yuki-kimoto> |
|
97 |
- |
|
98 |
-I develope this module L<http://github.com/yuki-kimoto/DBIx-Custom> |
|
99 |
- |
|
100 |
-=head1 Copyright & lisence |
|
101 |
- |
|
102 |
-Copyright 2009 Yuki Kimoto, all rights reserved. |
|
103 |
- |
|
104 |
-This program is free software; you can redistribute it and/or modify it |
|
105 |
-under the same terms as Perl itself. |
|
106 |
- |
|
96 |
+=cut |
... | ... |
@@ -32,6 +32,7 @@ my $dbi; |
32 | 32 |
my $ret_val; |
33 | 33 |
my $rows; |
34 | 34 |
my $db_file; |
35 |
+my $id; |
|
35 | 36 |
|
36 | 37 |
test 'connect_memory'; |
37 | 38 |
$dbi = DBIx::Custom::SQLite->new; |
... | ... |
@@ -67,3 +68,12 @@ ok(defined $ret_val, "$test : database"); |
67 | 68 |
$dbi->disconnect; |
68 | 69 |
unlink $db_file if -f $db_file; |
69 | 70 |
|
71 |
+test 'last_insert_rowid'; |
|
72 |
+$dbi = DBIx::Custom::SQLite->new; |
|
73 |
+$dbi->connect_memory; |
|
74 |
+$ret_val = $dbi->do($CREATE_TABLE->{0}); |
|
75 |
+$dbi->insert('table1', {key1 => 1, key2 => 2}); |
|
76 |
+is($dbi->last_insert_rowid, 1, "$test: first"); |
|
77 |
+$dbi->insert('table1', {key1 => 1, key2 => 2}); |
|
78 |
+is($dbi->last_insert_rowid, 2, "$test: second"); |
|
79 |
+$dbi->disconnect; |