Question SOLVED - Use INTEGER or INT64 function to compare integer index-field and decimal

I'm facing an issue that I can solve but would like to know why I should do this.

Progress 10.2A

Table: Professional
Fields:
- IdType AS Character
- IdNum AS Integer
- Name AS Character
Index:
Asc IdType
Asc IdNum

Temp-table: tt
- IdType AS Character
- IdNum AS Integer
- some other fields

This statement

FIND FIRST Professional NO-LOCK
WHERE Professional.IdType = tt.IdType
AND Professional.IdNum = tt.IdNum NO-ERROR.

raises the following compilation error:
** Use INTEGER or INT64 function to compare integer index-field and decimal (46)
** %s Could not understand line %d. (196)


I know that if I change the statement to

FIND FIRST Professional NO-LOCK
WHERE Professional.IdType = tt.IdType
AND INTEGER(Professional.IdNum) = tt.IdNum NO-ERROR.

the error dissapear.


But, why is this happening?

Both IdType are Character and both IdNum are Integer.

Is the INTEGER(Professional.IdNum) messing with the index?


TIA.

Regards,
Sebas...
 
SOLVED

My mistake. Rechecked the field definitions and found then the tt.NumId was decimal instead of integer.

Sorry for the inconvenience. Tryed to delete thread and could find how to.

Regards...
Sebas...
 
Top