Hi,
I have stored en empty string in a varchar(255) column of a Sybase ASE.
When I retrieve it via
$r = $dbh->selectall_arrayref("select Value from Example where Id = 17");
then the following is true:
$r->[0]->[0] eq ' '
I expected it to be false and instead
$r->[0]->[0] eq ''
(with an empty string) to be true.
In my opinion, that is a bug.
Notice: The Database really has an empty string, not a NULL value or any
other weird thing.
I saw your explanation of syb_bind_empty_string_as_null, but that seems
to be related to something different.
Do you think I am misunderstanding something or do you agree that it
is a bug?
I am using Solaris 10/SPARC, Perl 5.8.6, DBI 1.48, DBD::Sybase 1.05.
ASE is 12.5.
The same happens with Solaris 8, Perl 5.6.1, DBI 1.32, DBD::Sybase 0.95,
ASE 12.0.
Something completely different:
You write about "make test" failing under Solaris when LD_LIBRARY_PATH is
set. Your note isn't quite accurate; the same happens if LD_LIBRARY_PATH
isn't set. (Actually, one should avoid LD_LIBRARY_PATH whenever possible.)
There are two possibilities besides adjusting the LD_LIBRARY_PATH
value to contain the Sybase library path:
1. set LD_RUN_PATH to contain the Sybase library path before running
"make test"
2. when building the module, use -R <Sybase library path> in addition
to -L <Sybase library path>. If that's done, the shared library
will know where to resolve its dependencies.
For instance:
> ldd /backup/rjhb/w/DBD-Sybase-1.05/blib/arch/auto/DBD/Sybase/Sybase.so
libct.so => /opt/sybase/V12.5/OCS-12_5/lib/libct.so
libcs.so => /opt/sybase/V12.5/OCS-12_5/lib/libcs.so
libtcl.so => /opt/sybase/V12.5/OCS-12_5/lib/libtcl.so
libcomn.so => /opt/sybase/V12.5/OCS-12_5/lib/libcomn.so
libintl.so => /opt/sybase/V12.5/OCS-12_5/lib/libintl.so
libdl.so.1 => /lib/libdl.so.1
libm.so.2 => /lib/libm.so.2
libc.so.1 => /lib/libc.so.1
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1 => /lib/libnsl.so.1
libmp.so.2 => /lib/libmp.so.2
libmd5.so.1 => /lib/libmd5.so.1
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1
/platform/SUNW,Sun-Blade-100/lib/libmd5_psr.so.1
"-R" is an option of Sun's linker (also used when building with gcc)
and the preferred way to get rid of LD_LIBRARY_PATH trouble.
Could you please tell me your opinion about the empty string problem?
Thanks,
Rainer
----------------------------------------------------------------------
Rainer J. H. Brandt email: [EMAIL PROTECTED]
Brandt & Brandt Computer GmbH web: www.bb-c.de
Kamberg 111 phone: +49 2448 919126
D 53940 Hellenthal mobile: +49 172 9593205