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