Icon View Incident Report

Serious Serious
Reported By: Chris B
Reported On: 11/18/2010
For: Version 2.04 Build 4
# 3351 Adding Expression Filter to a Sensitive Query Result Set with RANGE Clause Causes Incorrect Results

I'm using Elevate 2.04B4 and seeing some weird behaviour when combining a RANGE clause with a dataset filter.

Lets say I have a 1000 product records where the ProductName begins with 'L' - see below query. You can make an assumption that a single product can come from multiple suppliers.

I'm trying to locate the first record where PreferredFlag = True (in the ProductName,SupplierName order). So I apply a dataset filter (PreferredFlag = True), go to the first record, take a bookmark, remove the filter and go to that bookmark.

However, if the first preferred record is outside of the 1 - 200 range of the original recordset, the GotoBookmark fails with a message - Record not found

Apparently elevate applies the range AFTER filtering the records. What I'm saying is that by applying the filter I suddenly find records that were not in the original range.

SELECT ProductName, SupplierName, Product.PreferredFlag
FROM Product
INNER JOIN Supplier ON Supplier.ProductCode = Product.ProductCode
WHERE ProductName LIKE 'L%'
ORDER BY ProductName, SupplierName
RANGE 1 to 200



Resolution Resolution
Fixed Problem on 11/22/2010 in version 2.05 build 1


Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB DAC Client-Server
ElevateDB DAC Client-Server with Source
ElevateDB DAC Standard
ElevateDB DAC Standard with Source
ElevateDB DAC Trial
ElevateDB LCL Standard with Source
ElevateDB PHP Standard
ElevateDB PHP Standard with Source
ElevateDB PHP Trial
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image