Showing 3 changed files with 43 additions and 56 deletions
+19 -32
lib/DBIx/Custom/SQLite.pm
... ...
@@ -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
+14 -24
lib/DBIx/Custom/Transaction.pm
... ...
@@ -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
+10
t/dbix-custom-sqlite.t
... ...
@@ -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;