Subject Re: [firebird-support] SELECT FAILURE
Author Lucas Franzen
> SELECT QUANTITY, M.COMMENT, P.DESCRIPTION1, M.PROGRESS
> FROM MRP M, PARTS P
> WHERE P.STOCK_CODE = '123456'
> AND M.STOCK_CODE=P.STOCK_CODE
> AND ((M.PROGRESS > 0) AND (M.PROGRESS < 5))
> ORDER BY MDATE, M.CONTRACT ASCENDING
>
> This will periodically return EOF when a valid record exists - both in
> an application and via IBExpert
>
> The problem is with (M.PROGRESS > 0). PROGRESS is an integer field
> and there is a single valid record with a value of 1.
>
> Changing the condition to (M.PROGRESS >= 1) correctly returns the
> record.
>
> If I backing up the database (Server Version: LI-V2.0.0.12748 Firebird
> 2.0) and restoring it my desktop (Server Version: WI-V2.0.0.12748
> Firebird 2.0) it returns the correct record.

How about backing up restoring the database that produces the error?
(Restoring on the machine where the error occurs, not on another one)


Why do you use this syntax mixture:

SELECT QUANTITY, M.COMMENT, P.DESCRIPTION1, M.PROGRESS
...
ORDER BY MDATE, M.CONTRACT ASCENDING

of qualified (M.COMMENT) and unqualified (QUANTITY) field names???

What happens if you change the where-clause to
AND ( M.PROGRESS BETWEEN 1 AND 4 )

?

Luc.