| alternate-counter | coll | XML | En muchas ocasiones se emplea la funcionalidad que tienen las colecciones de devolver la cantidad de registros que se leerán con un lazo StartBrowse-EndBrowse. Esto es útil sobre todo para actualizar barras de progreso, porcentajes de terminación de procesos, etc. Para que la maquinaria controle la cantidad de registros a devolver hay que pasarle como parámetro TRUE a la llamada de StartBrowse, ya que computar la cantidad de registros que va a devolver una consulta consume tiempo y si no es necesario, no hay por qué hacerlo. Sin embargo, el mecanismo que se emplea internamente para computar la cantidad de objetos que se recorrerán mediante este método, se basa en el método RecordCount de ADO, que a su vez depende del proveedor de datos. En casos como MySQL u Oracle, cuando el cursor está del lado del servidor la llamada a RecordCount da 1, por lo que no es posible llevar el conteo de los registros que se están recorriendo. En estos casos es necesario elaborar un mecanismo alternativo para controlar la cantidad de registros. Poniendo el atributo alternate-counter a true la maquinaria comprobará que la cantidad de registros a devolver sea positiva. Si no es este el caso, se abre una consulta haciendo un COUNT de la clave primaria de la consulta, y el valor devuelto será usado como número de registros del recorrido. |