mirror of
https://github.com/DBD-SQLite/DBD-SQLite
synced 2025-06-07 14:19:10 -04:00
mention cast() function
This commit is contained in:
parent
998847196d
commit
817c9a5669
3 changed files with 24 additions and 2 deletions
|
@ -1233,6 +1233,15 @@ This is somewhat weird, but works anyway.
|
||||||
});
|
});
|
||||||
$sth->execute(5);
|
$sth->execute(5);
|
||||||
|
|
||||||
|
=item Use SQL cast() function
|
||||||
|
|
||||||
|
This is more explicit way to do the above.
|
||||||
|
|
||||||
|
my $sth = $dbh->prepare(q{
|
||||||
|
SELECT bar FROM foo GROUP BY bar HAVING count(*) > cast(? as integer);
|
||||||
|
});
|
||||||
|
$sth->execute(5);
|
||||||
|
|
||||||
=item Set C<sqlite_see_if_its_a_number> database handle attribute
|
=item Set C<sqlite_see_if_its_a_number> database handle attribute
|
||||||
|
|
||||||
As of version 1.32_02, you can use C<sqlite_see_if_its_a_number>
|
As of version 1.32_02, you can use C<sqlite_see_if_its_a_number>
|
||||||
|
|
|
@ -7,7 +7,7 @@ BEGIN {
|
||||||
|
|
||||||
use lib "t/lib";
|
use lib "t/lib";
|
||||||
use SQLiteTest;
|
use SQLiteTest;
|
||||||
use Test::More tests => 8;
|
use Test::More tests => 9;
|
||||||
use Test::NoWarnings;
|
use Test::NoWarnings;
|
||||||
use DBI qw(:sql_types);
|
use DBI qw(:sql_types);
|
||||||
|
|
||||||
|
@ -62,6 +62,12 @@ is( scalar(@$ar), 2, 'Got 2 results' );
|
||||||
is( scalar(@$ar), 2, 'Got 2 results' );
|
is( scalar(@$ar), 2, 'Got 2 results' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# known workaround 4
|
||||||
|
$ar = $dbh->selectall_arrayref(
|
||||||
|
'SELECT bar FROM foo GROUP BY bar HAVING count(*) > cast(? as integer)',
|
||||||
|
undef, 1);
|
||||||
|
is( scalar(@$ar), 2, 'Got 2 results' );
|
||||||
|
|
||||||
# and this is what should be tested
|
# and this is what should be tested
|
||||||
#TODO: {
|
#TODO: {
|
||||||
local $TODO = 'This test is currently broken again. Wait for a better fix, or use known workarounds shown above';
|
local $TODO = 'This test is currently broken again. Wait for a better fix, or use known workarounds shown above';
|
||||||
|
|
|
@ -8,7 +8,7 @@ BEGIN {
|
||||||
|
|
||||||
use lib "t/lib";
|
use lib "t/lib";
|
||||||
use SQLiteTest;
|
use SQLiteTest;
|
||||||
use Test::More tests => 19;
|
use Test::More tests => 21;
|
||||||
use Test::NoWarnings;
|
use Test::NoWarnings;
|
||||||
use DBI qw(:sql_types);
|
use DBI qw(:sql_types);
|
||||||
|
|
||||||
|
@ -87,3 +87,10 @@ is( $sth->fetchrow_arrayref->[0], 1, "result of: $tweaked_statement : [2]" );
|
||||||
ok( $sth->execute(2), "execute: $statement : [2]" );
|
ok( $sth->execute(2), "execute: $statement : [2]" );
|
||||||
is( $sth->fetchrow_arrayref->[0], 1, "result of: $statement : [2]" );
|
is( $sth->fetchrow_arrayref->[0], 1, "result of: $statement : [2]" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# known workarounds 4: cast()
|
||||||
|
|
||||||
|
($tweaked_statement = $statement) =~ s/\?/cast(\? as integer)/;
|
||||||
|
$sth = $dbh->prepare($tweaked_statement);
|
||||||
|
ok( $sth->execute(2), "execute: $tweaked_statement : [2]" );
|
||||||
|
is( $sth->fetchrow_arrayref->[0], 1, "result of: $tweaked_statement : [2]" );
|
||||||
|
|
Loading…
Add table
Reference in a new issue