my $DB21 = modules::Db->ConnectCheck21();
my $sql = "SELECT Img, CheckNum
FROM Image_View
WHERE UserID = '$FORM->{StoreNum}'
AND Acct = '$FORM->{BankAcctNum}'
AND Routing = '$FORM->{RoutingNum}'
AND CheckNum = '$FORM->{CheckNum}'
AND Amt = '$FORM->{Amt}'";
my $rs = $DB21->SelectHash($sql);
print<<EOD;
<html>
<head>
</head>
<body>
<table border=0 width=35%>
<tr>
<td><b>Check 21 Image Link</b></td>
</tr>
EOD
my $bgcolor;
my $background;
my $num = 0;
foreach(sort{$rs->{$a}->{CheckNum} cmp $rs->{$b}->{CheckNum}}keys(%$rs)){
$num++;
if($bgcolor == 1){
$bgcolor = 0;
}elsif($bgcolor == 0){
$bgcolor = 1;
}
if ($bgcolor == 1) {
$background = "lightgrey";
}else {
$background = "#FFFFFF";
}
open OUTPUT, ">output" . $num . ".png";
my $newdata = $rs->{$_}->{Img};
print OUTPUT $newdata;
close OUTPUT;
print "<tr><td bgcolor='$background'><a href='output" . $num . ".png' target='_blank'>$rs->{$_}->{CheckNum}</a></td></tr>";
}
sub ConnectCheck21{
my ($class) = @_;
my $hash = {};
$ENV{'SYBASE'} = '/usr/local/etc/freetds' ;
my $UserName = "xx"; // Removed for privacy
my $Password = "xxxxxxx"; //Removed for privacy
for (1 .. 10){
$hash->{dbh} = DBI->connect("DBI:Sybase:server=sql1", $UserName, $Password);
if($hash->{dbh}){
$hash->{dbh}->do("use iCapture_DB");
print STDERR "Successful DB::ConnectCheck21 connection on attempt $_\n" if($_ > 1);
bless ($hash, $class);
return $hash;
}else{
sleep(1);
}
}
print STDERR "Giving up on database connection in Db::ConnectCheck21\n";
exit;
}
my $DB21 = modules::Db->ConnectCheck21(); #existing line
$DB21->{dbh}->{LongReadLen} = largest_possible_field_here; #new line
...
$DB21->{dbh}->{LongReadLen} = $DB21->{dbh}->selectrow_array(qq{SELECT MAX(OCTET_LENGTH(Img)) FROM Image_View});
$DB21->{dbh}->{LongReadLen} = $DB21->{dbh}->selectrow_array(qq{SELECT MAX(DATALENGTH(Img)) FROM Image_View});
my $LongReadLen = $DB21->{dbh}->selectrow_array(qq{SELECT MAX(DATALENGTH(Img)) FROM Image_View});
print "LongReadLen=$LongReadLen\n"; #For debugging
$DB21->{dbh}->{LongReadLen} = $LongReadLen;
my $LongReadLen = $DB21->{dbh}->selectrow_array(qq{SELECT MAX(DATALENGTH(Img)) FROM Image_View});
# $DB21->{dbh}->{LongReadLen} = $LongReadLen;
$DB21->{dbh}->do("set textsize $LongReadLen");
my $sql2 = "SELECT Img, CheckNum
FROM Image_View
WHERE UserID = '$FORM->{StoreNum}'
AND Acct = '$FORM->{BankAcctNum}'
AND Routing = '$FORM->{RoutingNum}'
AND CheckNum = '$FORM->{CheckNum}'
AND Amt = '$FORM->{Amt}'";
my $rs = $DB21->SelectHash($sql2);
print<<EOD;
<html>
<head>
</head>
<body>
<table border=0 width=35%>
<tr>
<td><b>Check 21 Image Link</b></td>
</tr>
EOD
my $bgcolor;
my $background;
my $num = 0;
foreach(sort{$rs->{$a}->{CheckNum} cmp $rs->{$b}->{CheckNum}}keys(%$rs)){
$num++;
if($bgcolor == 1){
$bgcolor = 0;
}elsif($bgcolor == 0){
$bgcolor = 1;
}
if ($bgcolor == 1) {
$background = "lightgrey";
}else {
$background = "#FFFFFF";
}
binmode(OUTPUT);
open OUTPUT, ">output" . $num . ".png";
my $newdata = $rs->{$_}->{Img};
binmode(OUTPUT);
print OUTPUT $newdata;
close OUTPUT;
print "<tr><td bgcolor='$background'><a href='output" . $num . ".png' target='_blank'>$rs->{$_}->{CheckNum}</a></td></tr>";
}