BEGIN {
use_ok(
'DBI'
);
use_ok(
'DBD::Sybase'
);
}
use
vars
qw($Pwd $Uid $Srv $Db)
;
(
$Uid
,
$Pwd
,
$Srv
,
$Db
) = _test::get_info();
my
$dbh
= DBI->
connect
(
"dbi:Sybase:$Srv;database=$Db"
,
$Uid
,
$Pwd
,
{
PrintError
=> 0,
AutoCommit
=> 1,
}
);
ok(
defined
(
$dbh
),
'Connect'
);
if
( !
$dbh
) {
warn
"No connection - did you set the user, password and server name correctly in PWD?\n"
;
for
( 4 .. 49 ) {
ok(0);
}
exit
(0);
}
test1(
$dbh
);
test2(
$dbh
);
test3(
$dbh
);
test4(
$dbh
);
test5(
$dbh
);
test6(
$dbh
);
test_cached(
$dbh
);
sub
test1 {
my
$dbh
=
shift
;
my
$rc
;
my
$sth1
=
$dbh
->prepare(
"select * from master..sysprocesses"
);
ok(
defined
(
$sth1
),
'test1 prepare1'
);
my
$sth2
=
$dbh
->prepare(
"select * from sysusers"
);
ok(
defined
(
$sth2
),
'test1 prepare2'
);
$rc
=
$sth1
->execute;
ok(
defined
(
$rc
),
'test1 execute1'
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test1 fetch1"
);
$rc
=
$sth2
->execute;
ok(
defined
(
$rc
),
'test1 execute2'
);
$rc
= 0;
while
(
my
$d
=
$sth2
->fetch ) {
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
}
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
ok(
$rc
== 0,
"test1 fetch2"
);
}
sub
test2 {
my
$dbh
=
shift
;
SKIP: {
skip
'? placeholders not supported'
, 6
unless
$dbh
->{syb_dynamic_supported};
my
$rc
;
my
$sth1
=
$dbh
->prepare(
"select * from master..sysprocesses where spid = ?"
);
ok(
defined
(
$sth1
),
'test2 prepare1'
);
my
$sth2
=
$dbh
->prepare(
"select * from sysusers where uid = ?"
);
ok(
defined
(
$sth2
),
'test2 prepare2'
);
$rc
=
$sth1
->execute(1);
ok(
defined
(
$rc
),
'test2 execute1'
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test2 fetch1"
);
$rc
=
$sth2
->execute(1);
ok(
defined
(
$rc
),
'test2 execute2'
);
$rc
= 0;
while
(
my
$d
=
$sth2
->fetch ) {
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
}
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
ok(
$rc
== 0,
"test2 fetch2"
);
}
}
sub
test3 {
my
$dbh
=
shift
;
SKIP: {
skip
'? placeholders not supported'
, 6
unless
$dbh
->{syb_dynamic_supported};
my
$rc
;
my
$sth1
=
$dbh
->prepare(
"select * from master..sysprocesses where spid = ?"
);
ok(
defined
(
$sth1
),
'test3 prepare1'
);
my
$sth2
=
$dbh
->prepare(
"select * from sysusers where uid = ?"
);
ok(
defined
(
$sth2
),
'test3 prepare2'
);
$rc
=
$sth1
->execute(1);
ok(
defined
(
$rc
),
'test3 execute1'
);
$rc
=
$sth2
->execute(1);
ok(
defined
(
$rc
),
'test3 execute2'
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test3 fetch1"
);
$rc
= 0;
while
(
my
$d
=
$sth2
->fetch ) {
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
}
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
ok(
$rc
== 0,
"test3 fetch2"
);
}
}
sub
test4 {
my
$dbh
=
shift
;
SKIP: {
skip
'? placeholders not supported'
, 6
unless
$dbh
->{syb_dynamic_supported};
my
$rc
;
my
$sth1
=
$dbh
->prepare(
"select * from master..sysprocesses where spid = ?"
);
ok(
defined
(
$sth1
),
'test4 prepare1'
);
my
$sth2
=
$dbh
->prepare(
"select * from sysusers"
);
ok(
defined
(
$sth2
),
'test4 prepare2'
);
$rc
=
$sth1
->execute(1);
ok(
defined
(
$rc
),
'test4 execute1'
);
$rc
=
$sth2
->execute();
ok(
defined
(
$rc
),
'test4 execute2'
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test4 fetch1"
);
$rc
= 0;
while
(
my
$d
=
$sth2
->fetch ) {
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
}
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
ok(
$rc
== 0,
"test4 fetch2"
);
}
}
sub
test5 {
my
$dbh
=
shift
;
SKIP: {
skip
'? placeholders not supported'
, 8
unless
$dbh
->{syb_dynamic_supported};
my
$rc
;
$dbh
->{syb_no_child_con} = 1;
my
$sth1
=
$dbh
->prepare(
"select * from master..sysprocesses where spid = ?"
);
ok(
defined
(
$sth1
),
'test5 prepare1'
);
$rc
=
$sth1
->execute(1);
ok(
defined
(
$rc
),
'test5 execute1'
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test5 fetch1"
);
my
$sth2
=
$dbh
->prepare(
"select * from sysusers"
);
ok(
defined
(
$sth2
),
'test5 prepare2'
);
$rc
=
$sth2
->execute();
ok(
defined
(
$rc
),
'test5 execute2'
);
$rc
= 0;
while
(
my
$d
=
$sth2
->fetch ) {
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
}
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
ok(
$rc
== 0,
"test5 fetch2"
);
$rc
=
$sth1
->execute(1);
ok(
defined
(
$rc
),
'test5 execute3'
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test5 fetch3"
);
}
$dbh
->{syb_no_child_con} = 0;
}
sub
test6 {
my
$dbh
=
shift
;
my
$rc
;
$dbh
->{syb_no_child_con} = 1;
my
$sth1
=
$dbh
->prepare(
"select * from master..sysprocesses"
);
ok(
defined
(
$sth1
),
'test6 prepare1'
);
$rc
=
$sth1
->execute();
ok(
defined
(
$rc
),
'test6 execute1'
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test6 fetch1"
);
my
$sth2
=
$dbh
->prepare(
"select * from sysusers"
);
ok(
defined
(
$sth2
),
'test6 prepare2'
);
$rc
=
$sth2
->execute();
ok(
defined
(
$rc
),
'test6 execute2'
);
$rc
= 0;
while
(
my
$d
=
$sth2
->fetch ) {
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
}
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
ok(
$rc
== 0,
"test6 fetch2"
);
$rc
=
$sth1
->execute();
ok(
defined
(
$rc
),
'test6 execute3'
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test6 fetch3"
);
$dbh
->{syb_no_child_con} = 0;
}
sub
test_cached {
my
$dbh
=
shift
;
my
$sth1
=
$dbh
->prepare_cached(
"select * from master..sysprocesses"
,
undef
, 0);
ok(
defined
(
$sth1
),
"test_cache prepare1"
);
my
$rc
=
$sth1
->execute();
ok(
defined
(
$rc
),
"test_cache execute1"
);
$rc
= 0;
while
(
my
$d
=
$sth1
->fetch ) {
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
}
if
(
$sth1
->err ) {
$rc
=
$sth1
->err;
}
ok(
$rc
== 0,
"test_cache fetch1"
);
my
$sth2
=
$dbh
->prepare_cached(
"select * from master..sysprocesses"
,
undef
, 0);
ok(
defined
(
$sth2
),
"test_cache prepare2"
);
$rc
=
$sth2
->execute();
ok(
defined
(
$rc
),
"test_cache execute2"
);
$rc
= 0;
while
(
my
$d
=
$sth2
->fetch ) {
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
}
if
(
$sth2
->err ) {
$rc
=
$sth2
->err;
}
ok(
$rc
== 0,
"test_cache fetch2"
);
}