#!perl -w
use strict;
use DBI qw(:sql_types);

my $sServerName = '';
my $sDBName = '';
my $sUserName = '';
my $sPassword = '';
my $uValue = 123456;
#my $uValue = '123456';
#my $uValue = 'A123456';

# my $oDBConnection = DBI->connect("dbi:ODBC:driver={SQL Server};Server=$sServerName;database=$sDBName;uid=$sUserName;pwd=$sPassword;");
my $oDBConnection = DBI->connect("dbi:ODBC:PERL_TEST_SQLSERVER",$ENV{DBI_USER},$ENV{DBI_PASS}, {RaiseError=>1});



my $sSQL;
my $qGetWID;


eval {
		$oDBConnection->do(q{
			CREATE TABLE DBD_ODBC_TEST1 (
				[ID] [int] NOT NULL,
				[NAME] [varchar] (60) NOT NULL
			)
		});
};
eval {
   $oDBConnection->do(q{
			CREATE TABLE DBD_ODBC_TEST2 (
				[ID] [int] NOT NULL,
				[NAME] [varchar] (60) NOT NULL
			)
		});
};

$oDBConnection->do(q{ INSERT INTO DBD_ODBC_TEST1 (id,name) VALUES (1,'Test1') });
$oDBConnection->do(q{ INSERT INTO DBD_ODBC_TEST2 (id,name) VALUES (1,'Test1') });
$oDBConnection->do(q{ INSERT INTO DBD_ODBC_TEST1 (id,name) VALUES (2,'A123456') });
$oDBConnection->do(q{ INSERT INTO DBD_ODBC_TEST2 (id,name) VALUES (2,'A123456') });
		
$sSQL = q{
   SELECT DBD_ODBC_TEST1.*
	FROM DBD_ODBC_TEST1, DBD_ODBC_TEST2
	WHERE DBD_ODBC_TEST1.id = DBD_ODBC_TEST2.id
	AND DBD_ODBC_TEST2.name = ?
};

my $tracefile = "c:/temp/DBI_TRACE_lev9.txt";
unlink($tracefile);
DBI->trace(9, $tracefile);

$qGetWID = $oDBConnection->prepare_cached($sSQL);
# $qGetWID->bind_param(1, $uValue, DBI::SQL_VARCHAR);
#$qGetWID->execute;
$qGetWID->execute($uValue);
if (my $aRow = $qGetWID->fetchrow_hashref('NAME_lc')) {
   print $aRow->{'id'}, "\n";
} else {
   print "No words found\n";
}
$qGetWID->finish();

$sSQL = q{
	SELECT DBD_ODBC_TEST1.*
	FROM DBD_ODBC_TEST1
	INNER JOIN DBD_ODBC_TEST2 ON (DBD_ODBC_TEST1.id = DBD_ODBC_TEST2.id AND DBD_ODBC_TEST2.name = ?)
};

# hides problem!
$oDBConnection->{odbc_default_bind_type} = DBI::SQL_VARCHAR;
$qGetWID = $oDBConnection->prepare_cached($sSQL);
# $qGetWID->bind_param(1, $uValue, DBI::SQL_VARCHAR);
# $qGetWID->execute;
$qGetWID->execute($uValue);

if (my $aRow = $qGetWID->fetchrow_hashref('NAME_lc')) {
	print $aRow->{'id'}, "\n";
} else {
	print "No words found\n";
}
$qGetWID->finish();

$oDBConnection->do(q{ DROP TABLE DBD_ODBC_TEST1 });
$oDBConnection->do(q{ DROP TABLE DBD_ODBC_TEST2 });

$oDBConnection->disconnect();
