... | ... |
@@ -1,3 +1,5 @@ |
1 |
+0.1701 |
|
2 |
+ - added EXPERIMENTAL last_sql attribute method |
|
1 | 3 |
0.1700 |
2 | 4 |
- fixed end_filter DEPRECATED warnings bug |
3 | 5 |
0.1699 |
... | ... |
@@ -1,7 +1,7 @@ |
1 | 1 |
package DBIx::Custom; |
2 | 2 |
use Object::Simple -base; |
3 | 3 |
|
4 |
-our $VERSION = '0.1700'; |
|
4 |
+our $VERSION = '0.1701'; |
|
5 | 5 |
use 5.008001; |
6 | 6 |
|
7 | 7 |
use Carp 'croak'; |
... | ... |
@@ -52,6 +52,7 @@ has [qw/connector dsn password quote user/], |
52 | 52 |
decode_utf8 => sub { decode_utf8($_[0]) } |
53 | 53 |
} |
54 | 54 |
}, |
55 |
+ last_sql => '', |
|
55 | 56 |
models => sub { {} }, |
56 | 57 |
query_builder => sub { DBIx::Custom::QueryBuilder->new }, |
57 | 58 |
result_class => 'DBIx::Custom::Result', |
... | ... |
@@ -317,6 +318,10 @@ sub execute { |
317 | 318 |
|
318 | 319 |
# Create query |
319 | 320 |
$query = $self->_create_query($query) unless ref $query; |
321 |
+ |
|
322 |
+ # Save query |
|
323 |
+ $self->last_sql($query->sql); |
|
324 |
+ |
|
320 | 325 |
return $query if $query_return; |
321 | 326 |
$filter ||= $query->filter; |
322 | 327 |
|
... | ... |
@@ -1158,6 +1163,9 @@ sub _create_query { |
1158 | 1163 |
) if $cache; |
1159 | 1164 |
} |
1160 | 1165 |
|
1166 |
+ # Save sql |
|
1167 |
+ $self->last_sql($query->sql); |
|
1168 |
+ |
|
1161 | 1169 |
# Prepare statement handle |
1162 | 1170 |
my $sth; |
1163 | 1171 |
eval { $sth = $self->dbh->prepare($query->{sql})}; |
... | ... |
@@ -1889,6 +1897,13 @@ default to the following values. |
1889 | 1897 |
|
1890 | 1898 |
Filters, registered by C<register_filter> method. |
1891 | 1899 |
|
1900 |
+=head2 C<last_sql> EXPERIMENTAL |
|
1901 |
+ |
|
1902 |
+ my $last_sql = $dbi->last_sql; |
|
1903 |
+ $dbi = $dbi->last_sql($last_sql); |
|
1904 |
+ |
|
1905 |
+Get last successed SQL executed by C<execute> method. |
|
1906 |
+ |
|
1892 | 1907 |
=head2 C<models> |
1893 | 1908 |
|
1894 | 1909 |
my $models = $dbi->models; |
... | ... |
@@ -0,0 +1,13 @@ |
1 |
+=encoding utf8 |
|
2 |
+ |
|
3 |
+=head1 NAME |
|
4 |
+ |
|
5 |
+DBIx::Custom::Guide - DBIx::Customガイド |
|
6 |
+ |
|
7 |
+=head1 LINK |
|
8 |
+ |
|
9 |
+ドキュメントは以下のリンクに移動しました。 |
|
10 |
+ |
|
11 |
+L<http://d.hatena.ne.jp/perlcodesample/20110401/1305597081> |
|
12 |
+ |
|
13 |
+=cut |
... | ... |
@@ -3316,4 +3316,15 @@ $dbi->tag_parse(0); |
3316 | 3316 |
ok($@); |
3317 | 3317 |
} |
3318 | 3318 |
|
3319 |
+test 'last_sql'; |
|
3320 |
+{ |
|
3321 |
+ my $dbi = DBIx::Custom->connect(dsn => 'dbi:SQLite:dbname=:memory:'); |
|
3322 |
+ $dbi->execute("create table table1 (key1, key2)"); |
|
3323 |
+ $dbi->execute('select * from table1'); |
|
3324 |
+ is($dbi->last_sql, 'select * from table1;'); |
|
3325 |
+ |
|
3326 |
+ eval{$dbi->execute("aaa")}; |
|
3327 |
+ is($dbi->last_sql, 'aaa;'); |
|
3328 |
+ |
|
3329 |
+} |
|
3319 | 3330 |
=cut |