CLEAR SET NULL ON && ON/OFF don't change the functionallity CREATE CURSOR C1 ( F1 L NOT NULL UNIQUE) =CURSORSETPROP("Buffering",5) APPEND BLANK * when a information into a Application Environment it is forced to be unknown * and exists a tag ( NULL ) for representing this fact, * then their value have to be NULL also if it cannot to be NULL. * When a language support the NULL tag, * this choice is not a option, but it is a forced rule. * Next line show that a good developer lead exists into the VFPT, * and it have understood this basic rule: * Next line show this: * - F1 don't support NULLs, and it's OLDVAL and CURVAL are NULL ! * - also GETFLDSTATE() it is NULL ! ( out of documentation ), * then i can think that this behaviour it can to be a code's side effect: ? F1,GETFLDSTATE(-1),OLDVAL("F1"),CURVAL("F1"),OLDVAL("GETFLDSTATE(-1)") * In-fact when VFPT have implemented the indexes engine, * this global rule it is lost, and a ( my old ) serious VFP bug show the face * On next line i expected no errors ! * Absurd it is that * the search of a field within an index based on the same field gives back an error: ? KEYMATCH(OLDVAL("F1"),'C1',1) * Now we go into the unknown world: go to the OOT() = OUT OF TABLE RECORD = EOF() SKIP * now no informations are knowned, and no buffered data exists, * then i expected: * no known info ( behaviour applied before ) => NULL * no buffered data ( coherence rule ) => field=OLDVAL("field") * Result: On next line I expected all NULL ? F1,GETFLDSTATE(-1),OLDVAL("F1"),CURVAL("F1"),OLDVAL("GETFLDSTATE(-1)") * I understand that the last expected results it opens a great problem * of compatibility backwards, * but when you found a bifurcation on the road you cannot walking with a foot on one and the other on the other, * after little you could yourselves be found in series difficulty with the pants. * In-fact, now i continuous to put patch to the code. USEI suspect that this incoherence and new VFP9 support for BUFFERED data into the SQL-SELECT command can give unexpected results.