>... >x=VAL(NULL) >... >
>IF ISNULL(m.searchValue) > GO BOTTOM > SKIP >ELSE > SEEK m.searchValue >ENDIF >IF FOUND() >ENDIF >* this for KEYMATCH,SEEK,INDEXSEEK,.... and for RUSHMORE optimization ? >
>SET NULL ON > >CREATE CURSOR MasterTable ( rid I AUTOINCR UNIQUE,Texto C(50) NOT NULL) >INSERT INTO MasterTable (Texto) VALUES ('testo 1') >INSERT INTO MasterTable (Texto) VALUES ('testo 2') > >CREATE CURSOR ChilrdTable ( rid I AUTOINCR UNIQUE,linkValue I) >INSERT INTO ChilrdTable (linkValue) VALUES (1) >INSERT INTO ChilrdTable (linkValue) VALUES (NULL) > >* SELECT search NULL on index not nullable !!!! >cRush='' >SYS(3054,11,'cRush') >SELECT CH.rid,CH.linkValue,MT.Texto FROM ChilrdTable CH LEFT JOIN MasterTable MT ON MT.rid=CH.linkValue INTO CURSOR r1 >? cRush >MESSAGEBOX('SELECT search NULL on index, and return NULL record') > >ON ERROR MESSAGEBOX(MESSAGE()+CHR(13)+'LOOKUP not support NULL, ignore error and continue') >SELECT CH.rid,CH.linkValue,LOOKUP(MasterTable.Texto,CH.linkValue,MasterTable.rid) Texto FROM ChilrdTable CH INTO CURSOR r2 >ON ERROR > >SET ORDER TO 1 IN MasterTable >SELECT ChilrdTable >SET RELATION TO linkValue INTO MasterTable >SCAN > ? linkValue,MasterTable.Texto,EOF('MasterTable') >ENDSCAN >MESSAGEBOX('RELATION search NULL on index, and go EOF() for NULL') > >