Subject Re: [IBO] NULL incorrectly returned as 0 through a left outer join view
Author Helen Borrie
I see several problems here without even looking at the SQL.


>The client versions:
>- 5.5

5.5 has many known bugs, including the one regarding inconsistent
views. It was replaced by 5.6 in August '99. That doesn't necessarily
mean all the bugs with views were fixed, either in 5.6 or in any of the 6.x
betas, including the "released" one. Your view problems might or might not
relate to the reported bugs with views.

Your inconsistent outer joins seem to indicate something weird,
though. See what happens when you get a clean installation.

>SHOW VERSION;
>
>ISQL Version: WI-V5.5.0.742
>InterBase/x86/Windows NT (access method), version "WI-V6.0.0.627"
>InterBase/x86/Windows NT (remote server), version "WI-V6.0.0.627/tcp
>(development)/P8"
>InterBase/x86/Windows NT (remote interface), version "WI-V5.5.0.742/tcp
>(ondrej_nt)/P8"

This is the 5.5 client. It's buggy (anyway) bit it won't work properly
with a v. 6 database.

>on disk structure version 10.0

- ODS would be 9.5 if the database were a 5.5 database.


>- 6.1 (after update, same results)
>SHOW VERSION;
>
>ISQL Version: WI-V6.0.0.627
>InterBase/x86/Windows NT (access method), version "WI-V6.0.0.627"
>InterBase/x86/Windows NT (remote server), version "WI-V6.0.0.627/tcp
>(development)/P10"
>InterBase/x86/Windows NT (remote interface), version "WI-V6.0.0.627/tcp
>(ondrej_nt)/P10"
>on disk structure version 10.0

Now you are using the initial binary from the Borland site, right? It's
not reporting itself as 6.01 (there is no 6.1), although it at least has a
valid build number.

>I have the same problem when running the select statement from the view
>using the following Interbase access components from Delphi:
>IBObjects version 3.4.Cl TIB_Column.IsNull returns False using the view,
>True using the table.

It might or might not matter, but this is a pretty old version of IBO (May
2000).

>IBX version 4.2 (using TIBQuery) TField.IsNull returns False using the view,
>True using the table.

And this is not the latest IBX, either. When using beta software, this
tends to matter, although it's probably not material to your current problems.

>Surprisingly, BDE 5.1 (using TQuery) TField.IsNull returns correctly True
>both using the view and the table.

The IB driver with the BDE 5.1 is for the ODS 9.0 API. So there is
something screwy about your ODS 10 setup if you are getting anomalous
results with direct API calls from components that make calls to the ODS 10
API.

>Any ideas, solutions or a work-around will be most appreciated.

It looks as if your installation is mixed up. Client and server versions
must match and on-disk structures must be correct. (The 6.x client is
**supposed** to be able to connect to a 5.6 (not 5.5) database but the
reverse is certainly not true!!)

I suggest you start by uninstalling IB completely, right down to deleting
files and clearing all Interbase entries from the Registry (You will have
two sets of keys, pointing to different installation targets). KEEP YOUR
5.5 license files.

If using 5.x, get the 5.6 installation and install it using the supplied
setup.exe.

***Move ib_udf.dll and ib_utils.dll into the /bin directory of the
install.*** This is needed for either 5.6 or 6.x.

If using 6.x, get the latest Win32 build from Firebird.

TShakers. :))


All for Open and Open for All
InterBase Developer Initiative ยท http://www.interbase2000.org
_______________________________________________________