Sentencia LIMIT generica

He agregado un método al framework que permite especificar el numero máximo de registros que devolverá la consulta SQL sin perder portabilidad.

La forma de emplearla en nuestras consultas personalizadas es, p. e.,
"SELECT * FROM Clientes {$this->limit($num_rows)}"
Donde $num_rows es el numero máximo de registros que evaluará la consulta.

En la anterior consulta la invocacion al metodo limit(10) devolveria " AND ROWNUM <= 10 " en el caso de Oracle y " LIMIT 10 " en el caso de MySQL u otros.

Si utilizamos este método podremos seguir sin preocuparnos por el RDBMS empleado (dígase Oracle, Postgres, MySQL), es decir, no perderemos la potabilidad de nuestro código de acceso a datos.

El código de la función es el sig.:
/*
	* Devuelve una clausula LIMIT adecuada al RDBMS empleado
	* @param $num cantidad de registros limite
	* @return String clausula LIMIT adecuada al RDBMS empleado
	*/
	public function limit&#40;$num = 1&#41;&#123;
		return $config-&gt;database-&gt;type == 'oracle' ? &quot; AND ROWNUM &lt;= &#123;$num&#125;&quot; &#58; &quot; LIMIT &#123;$num&#125; &quot;;
	&#125;

Comentarios

  • edited 11:55
    Se vee bastante bien.

    Saludos
  • Saludos rogerjose81 no he podido probar esa sugerencia sin embargo seria que hagas todos los debug necesario para evitar problemas a futuro, y aprovechando la oportunidad seria bueno hacer un banco de pruebas como la comenta andres en este post no se como estas de tiempo para hacer eso en un proyecto de kumbia y dar el primer paso para ese banco de prueba...

    <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
Sign In or Register to comment.