I’d say you need to show your code and proof, just like I did.
If I use this set(key,key) logic, here is the generated statements sent to the server:
BAP:JobUnique = 20
BAP:Description = 'Test GET on index'
Set(BAP:JobUniqueDescriptionKey,BAP:JobUniqueDescriptionKey)
loop
next(BidAlternatePackages)
if ERRORCODE()
break
end
end
declare @p1 int
set @p1=1073741826
declare @p2 int
set @p2=180150007
declare @p5 int
set @p5=4
declare @p6 int
set @p6=4
declare @p7 int
set @p7=-1
exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 int,@P2 int,@P3 varchar(50)',N'SELECT BAPUNIQUE,JOBUNIQUE,DESCRIPTION,PACKAGEORDER,CHGDATETIME FROM DBO.BidAlternatePackages WHERE (JOBUNIQUE >= @P1 AND (JOBUNIQUE > @P2 OR (DESCRIPTION >= @P3 ))) AND (JOBUNIQUE <> 0 OR DESCRIPTION <> '''') ORDER BY JOBUNIQUE,DESCRIPTION',@p5 output,@p6 output,@p7 output,20,20,'Test GET on index'
select @p1, @p2, @p5, @p6, @p7
Again, there is no UPPER in the statement.
Get(File,Key) is exactly the statement used by the ABC class File Manager FETCH methods.
GET(Key, KeyPointer) is used to re-get a row where you captured the value of POINTER(KEY). I don’t see how that is relevant to current question.
This also is not relevant. Clarion does not use the indexes in the actual database for SQL. Clarion just used the columns from your table definition to include the columns in the statements for where or order by clauses. The SQL engine determines which indexes to use or not to execute the statement.
Keys are not used in directly in a VIEW sort statement. The key is used to generate the order from the columns contained in the key. Again, please show code demonstrating what you are saying.