public boolean SEEK()
	{	
		if(order.length()>0)
			{
			idx O = ( Cdx==null ? Idx :
				( Cdx.I>=0 ? Cdx.Idx[ Cdx.I ] : null ));
			
			if(O!=null)
				{
				PREPARE_KEY_FROM_DATA( O );
				
				if(Idx!=null) Idx.seek(false);
				else Cdx.seek(false);
				
				go_recno( O.found || (O.sRecno>0) ? O.sRecno : reccount+1 );
				// otherwise sRecno contains nearest
				
				return O.found;
				}
			}

		return false;
	}