Приложение 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";