Приложение 4. Пример обработки типов данных в DBI-интерфейсе
#!/usr/bin/perl
require DBI;
import DBI;
$t- >{'t'} = "t";
$drh = DBI- >install_driver('Linter');
print "Version = $drh- >{Version}";
$database='';
$username='SYSTEM';
$auth='MANAGER8';
$dbh = DBI- >connect($database, $username, $auth, \%attr, 'Linter');
if(defined $dbh){
$dbh- >do('drop table bigint_test;');
$dbh- >do('create table bigint_test(b boolean, i int, j int, bi bigint, ch varchar(15), ch1 char(20));');
$dbh- >do('insert into bigint_test values(true, 10, 10, 42949672950, \'ddd\',\'\');');
$dbh- >do('insert into bigint_test values(false, 20, 10, 429496729500, \'ddd\',\'\');');
$dbh- >do('insert into bigint_test values(true, 30, 10, -42949672950, \'ddd\',\'\');');
$dbh- >do('insert into bigint_test values(false, 40, 10, -429496729500, \'ddd\',\'\');');
$sth=$dbh- >prepare('insert into bigint_test values(?,?,?,?,?,?);');
if(defined $sth){
# @param=(100, 100, "-42949672950", "fff, "ff");
@param=(1, 100, 100, -42949672950000, "fff", "ff");
$sth- >execute(@param);
$sth- >execute(@param);
$sth- >execute(@param);
}
$sth- >finish;
$sth=$dbh- >prepare('select b,i,bi,j,ch,ch1 from bigint_test;');
$t = $sth- >{TYPE};
print "\n$t- >[0], $t- >[1], $t- >[2], $t- >[3], $t- >[4], $t- >[5]\n";
#die "\n";
$rv = $sth- >execute();
while(1){
@row=$sth- >fetchrow_array;
last unless defined $row[0];
print "\n- > $row[0] $row[1] $row[2] $row[3] $row[4] $row[5]< -\n";
print $row[1] /100, "\n";
};
}else{
die("\nconnection error\n");
}
die "\n";