public bool FindFirst() { if (iIndex == null) { iIndex = tTable.PrimaryIndex; } if (eStart == null) { nCurrent = iIndex.First(); } else { ColumnType type = eStart.Arg.ColumnType; object o = eStart.Arg2.GetValue(type); nCurrent = iIndex.FindFirst(o, eStart.Type); } while (nCurrent != null) { oCurrentData = nCurrent.GetData(); if (!Test(eEnd)) { break; } if (Test(eAnd)) { return(true); } nCurrent = iIndex.Next(nCurrent); } oCurrentData = oEmptyData; if (bOuterJoin) { return(true); } return(false); }