if file('test_null_fields.dbf') drop table test_null_fields endif if not file('test_null_fields.dbf') create table test_null_fields (id autoinc,d1 character(15),d2 character(15),; d3 date,d4 boolean) insert into test_null_fields (d1,d2,d3,d4) values ("sfsfd","khkkj",'03/01/2017',false) insert into test_null_fields (d1) values ("sffdf") insert into test_null_fields (d1,d2,d3,d4) values ("fhh","tutuyu",'03/01/2017',false) endif clear q = new query() q.sql = "select * from 'test_null_fields.dbf'" q.active = true ? 'Before' ? q.rowset.first() do while not q.rowset.endofset ? 'Record '+q.rowset.fields[1].value for n = 1 to q.rowset.fields.size ? 'Field '+n,q.rowset.fields[n].value,'is Null' at 25,q.rowset.fields[n].value = null at 35 next q.rowset.next() enddo q.rowset.first() do while not q.rowset.endofset for n = 1 to q.rowset.fields.size if q.rowset.fields[n].type = "C" notNull = '' elseif q.rowset.fields[n].type = "N" notNull = 0.00 elseif q.rowset.fields[n].type = "D" notnull = {} // {0001/0001/0001} elseif q.rowset.fields[n].type = "L" notNull = false endif if q.rowset.fields[n].value = null q.rowset.fields[n].value = notNull endif next q.rowset.next() enddo ? ? 'After' ? q.rowset.first() do while not q.rowset.endofset ? 'Record '+q.rowset.fields[1].value for n = 1 to q.rowset.fields.size ? 'Field '+ n,q.rowset.fields[n].value,'is Null' at 25,q.rowset.fields[n].value = null at 35 next q.rowset.next() enddo q.active = false