File Coverage

blib/lib/DBIx/Romani/PreparedStatement.pm
Criterion Covered Total %
statement 9 42 21.4
branch 0 4 0.0
condition n/a
subroutine 3 12 25.0
pod 0 9 0.0
total 12 67 17.9


line stmt bran cond sub pod time code
1              
2             package DBIx::Romani::PreparedStatement;
3              
4 1     1   519 use DBIx::Romani::ResultSet;
  1         3  
  1         33  
5 1     1   2529 use DBI qw(:sql_types);
  1         39161  
  1         728  
6 1     1   13 use strict;
  1         2  
  1         605  
7              
8             sub new
9             {
10 0     0 0   my $class = shift;
11 0           my $args = shift;
12              
13 0           my $conn;
14             my $sql;
15              
16 0 0         if ( ref($args) eq 'HASH' )
17             {
18 0           $conn = $args->{conn};
19 0           $sql = $args->{sql};
20             }
21             else
22             {
23 0           $conn = $args;
24 0           $sql = shift;
25             }
26              
27 0           my $sth = $conn->get_dbh()->prepare( $sql );
28              
29 0           my $self = {
30             conn => $conn,
31             sql => $sql,
32             sth => $sth,
33             };
34              
35 0           bless $self, $class;
36 0           return $self;
37             }
38              
39 0     0 0   sub get_conn { return shift->{conn}; }
40 0     0 0   sub get_sth { return shift->{sth}; }
41              
42             sub execute_query
43             {
44 0     0 0   my $self = shift;
45              
46 0           my $params;
47             my $fetchmode;
48              
49 0           my $args = $_[0];
50 0 0         if ( ref($args) eq 'HASH' )
51             {
52 0           $fetchmode = $args->{fetchmode};
53 0           $params = $args->{params};
54             }
55             else
56             {
57 0           $params = \@_;
58             }
59              
60 0           $self->{sth}->execute( @$params );
61              
62 0           return $self->{conn}->get_driver()->create_result_set( $self->{conn}, $self->{sth}, $fetchmode );
63             }
64              
65             sub execute_update
66             {
67 0     0 0   my $self = shift;
68 0           return $self->{sth}->execute( @_ );
69             }
70              
71             sub set
72             {
73 0     0 0   my ($self, $index, $value) = @_;
74 0           $self->{sth}->bind_param( $index, $value );
75             }
76              
77             #
78             # TODO: Implement these:
79             #
80             # * sub set_clob
81             # * sub set_blob
82             #
83              
84             sub set_date
85             {
86 0     0 0   my ($self, $index, $value) = @_;
87              
88             # TODO: convert date into ODBC format!
89            
90 0           $self->{sth}->bind_param( $index, $value, SQL_DATE );
91             }
92              
93             sub set_time
94             {
95 0     0 0   my ($self, $index, $value) = @_;
96              
97             # TODO: convert date into ODBC format!
98              
99 0           $self->{sth}->bind_param( $index, $value, SQL_TIME );
100             }
101              
102             sub set_datetime
103             {
104 0     0 0   my ($self, $index, $value) = @_;
105              
106             # TODO: convert date into ODBC format!
107              
108 0           $self->{sth}->bind_param( $index, $value, SQL_DATETIME );
109             }
110              
111             1;
112