WITH CREATEOBJECT('session') SET DATASESSION TO .DatasessionId CLEAR CREATE CURSOR myParent ( rId I UNIQUE) FOR k=1 TO 10 INSERT INTO myParent VALUES (M.K) NEXT ON ERROR ? 'ERROR >>>>>>>>>> ',MESSAGE() CREATE CURSOR myCursor( fkId i NULL) INSERT INTO myCursor VALUES (NULL) SYS(3054,12) SELECT myParent.* FROM myParent,myCursor WHERE myParent.rId=myCursor.fkId INTO ARRAY ZZ && this not fire THE INDEX error SELECT myParent.* FROM myParent WHERE myParent.rId=myCursor.fkId INTO ARRAY ZZ && this fire THE INDEX error *!* SELECT myParent.* FROM myCursor X JOIN myParent ON myParent.rId=X.fkId AND myParent.rId=NULL INTO ARRAY ZZ && this fire THE INDEX error *!* SELECT myParent.* FROM myCursor X JOIN myParent ON myParent.rId=X.fkId AND myParent.rId IS NULL INTO ARRAY ZZ && this not fire THE INDEX error *!* SELECT myParent.* FROM myCursor X JOIN myParent ON myParent.rId=X.fkId OR myParent.rId=NULL INTO ARRAY ZZ && this not fire THE INDEX error ON ERROR ENDWITH