Brian,

I presume by "Easysoft" you mean Easysoft ODBC-ODBC Bridge?

If so, can you run your test script again but creating an OOB log file which
you can do by:

1. cd /tmp
2. create odbc.ini file containing only:

{Settings}
Logging = 0xffffff

NOTE, they are curly braces.

3. WITHOUT changing directory, run you Perl script

   perl /path_to_my_script/xxx.pl

4. send me the resulting esoobclient.log_<PID> which will appear in /tmp (where
<PID> is the process ID).

Martin
--
Martin J. Evans
Easysoft Ltd, UK
Development


On 25-Jul-2005 Brian Becker wrote:
> I am trying to bind an undef into an IsNull on a varchar field.  When I
> write the query binding directly into the IsNull I get no records, yet
> if I create a SQL variable, bind the undef to that, and then use the SQL
> variable - I get results.  I have created a test script that duplicates
> the problem (sorry the test is not the best but it does illustrate the
> problem).  The test script is done off of the Northwind database for SQL
> Server 2000.
> 
> Software:
> Easysoft
> unixODBC-2.2.11
> perl, v5.8.6 built for sun4-solaris
> DBD-ODBC-1.13
> DBI-1.48
> SQL Server 2000
> 
> Test Script:
> 
>#!perl -w -I./t
> 
> use Test::More;
> $| = 1;
> 
> use_ok('DBI', qw(:sql_types));
> use_ok('ODBCTEST');
> 
># to help ActiveState's build process along by behaving (somewhat) if a
> dsn is not provided
> BEGIN {
>    if (!defined $ENV{DBI_DSN}) {
>       plan skip_all => "DBI_DSN is undefined";
>    } else {
>       plan tests =>4;
>    }
> }
> 
> 
>#DBI->trace(2);
> my $dbh = DBI->connect();
> unless($dbh) {
>#   BAILOUT("Unable to connect to the database ($DBI::errstr)\nTests
> skipped.\n");
>    exit 0;
> }
> 
> $dbh->{AutoCommit} = 1;
> 
>#### testing a simple select
> 
> my $rc = 0;
> my $CustomerID;
> my $sql="
>           Declare [EMAIL PROTECTED] varchar(20)
>           SET [EMAIL PROTECTED]
>           select * from ORders where CustomerID =
> isnull([EMAIL PROTECTED],'VINET')
>   ";
> my $sth = $dbh->prepare(qq{$sql});
> $sth->bind_param(1,$CustomerID);
> $sth->execute();
> my $RowCount=0;
> while(my $row = $sth->fetchrow_hashref())
> {
>   $RowCount++;
> }
> is($RowCount,5, "This works");
> 
> my $sql2="
>         select * from ORders where CustomerID = isnull(?,'VINET')
>   ";
> my $sth2 = $dbh->prepare($sql2);
> $sth2->bind_param(1,$CustomerID);
> $sth2->execute();
> $RowCount=0;
> while(my $row = $sth2->fetchrow_hashref())
> {
>   $RowCount++;
> }
> is($RowCount,5, "This Doesnt");
># Test(1);
># clean up
> $sth->finish
> exit(0);
> 
> __END__
> 
> 
> COMMAND OUTPUT:
> 
>#perl Makefile.PL
> Useless use of private variable in void context at Makefile.PL line 431.
> 
> Configuring DBD::ODBC ...
> 
>>>>     Remember to actually *READ* the README file!
>         And re-read it if you have any problems.
> 
> Using DBI 1.48 (for perl 5.008006 on sun4-solaris) installed in
> /usr/perl5.8.6/lib/site_perl/5.8.6/sun4-solaris/auto/DBI/
> Using ODBC in /usr/local/easysoft/unixODBC
> 
> Umm, this looks like a unixodbc type of driver manager.
> We expect to find the sql.h, sqlext.h and (which were
> supplied with unixODBC) in $ODBCHOME/include directory alongside
> the /usr/local/easysoft/unixODBC/lib/libodbc.so library. in
> $ODBCHOME/lib
> 
> 
> Checking if your kit is complete...
> Looks good
> Injecting selected odbc driver into cc command
> Injecting selected odbc driver into cc command
> Using DBI 1.48 (for perl 5.008006 on sun4-solaris) installed in
> /usr/perl5.8.6/lib/site_perl/5.8.6/sun4-solaris/auto/DBI/
> Writing Makefile for DBD::ODBC
> 
> The DBD::ODBC tests will use these values for the database connection:
>     DBI_DSN=dbi:ODBC:dsn_Northwind              e.g. dbi:ODBC:demo
>     DBI_USER=webuser
>     DBI_PASS=test
> 
>#make
> cp Changes blib/lib/DBD/ODBC/Changes.pm
> cp ODBC.pm blib/lib/DBD/ODBC.pm
> /usr/bin/perl -p -e "s/~DRIVER~/ODBC/g"
> /usr/perl5.8.6/lib/site_perl/5.8.6/sun4-solaris/auto/DBI//Driver.xst >
> ODBC.xsi
> /usr/bin/perl /usr/perl5.8.6/lib/5.8.6/ExtUtils/xsubpp  -typemap
> /usr/perl5.8.6/lib/5.8.6/ExtUtils/typemap  ODBC.xs > ODBC.xsc && mv
> ODBC.xsc ODBC.c
> Warning: duplicate function definition 'data_sources' detected in
> ODBC.xs, line 202
> gcc -c -I/usr/local/easysoft/unixODBC/include  -I.
> -I/usr/perl5.8.6/lib/site_perl/5.8.6/sun4-solaris/auto/DBI/
> -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -O    -DVERSION=\"1.13\"  -DXS_VERSION=\"1.13\"
> -fPIC "-I/usr/perl5.8.6/lib/5.8.6/sun4-solaris/CORE"
> -I/usr/local/easysoft/unixODBC/include ODBC.c
> gcc -c -I/usr/local/easysoft/unixODBC/include  -I.
> -I/usr/perl5.8.6/lib/site_perl/5.8.6/sun4-solaris/auto/DBI/
> -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -O    -DVERSION=\"1.13\"  -DXS_VERSION=\"1.13\"
> -fPIC "-I/usr/perl5.8.6/lib/5.8.6/sun4-solaris/CORE"
> -I/usr/local/easysoft/unixODBC/include dbdimp.c
> Running Mkbootstrap for DBD::ODBC ()
> chmod 644 ODBC.bs
> rm -f blib/arch/auto/DBD/ODBC/ODBC.so
> LD_RUN_PATH="/usr/local/easysoft/unixODBC/lib" gcc  -G -L/usr/local/lib
> ODBC.o  dbdimp.o  -o blib/arch/auto/DBD/ODBC/ODBC.so
> -L/usr/local/easysoft/unixODBC/lib -lodbc
> chmod 755 blib/arch/auto/DBD/ODBC/ODBC.so
> cp ODBC.bs blib/arch/auto/DBD/ODBC/ODBC.bs
> chmod 644 blib/arch/auto/DBD/ODBC/ODBC.bs
> Manifying blib/man3/DBD::ODBC.3
> 
> Then of course make test fails on my test script above.
> 
> Brian Becker
> Jaeb Center for Health Research
> 15310 Amberly Drive
> Suite 350
> Tampa, FL 33647
> tel: 813-975-8690
> fax: 813-975-8761
> email: [EMAIL PROTECTED]
> http://www.jaeb.org
> 
> 

Reply via email to