Spanish ¿Como usar la clausula LIMIT de MySQL en jRDC2?

Sergio Castellari

Active Member
Licensed User
Situacion:
a) Necesito realizar la siguiente consulta:
config.properties:
sql.select_articulos_precios=Select a.CODIGO, a.CODIFICADO, a.NOMBRE, a.PVENTA, a.PVENTA_2, a.PVENTA_3, a.PVENTA_4, a.PVENTA_5, a.DOLARIZADO From ARTICULO a \
                              Where a.FECHAEGRE="0000-00-00" and Substr(a.NOMBRE,1,?)=? order by a.NOMBRE Limit 0,?

Pero al usarla, arroja el siguiente error:
<pre> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &apos;&apos;300&apos;&apos; at line 1</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a><hr/>

Utilizo 300 como Limit.
Si realizo la misma consulta desde MySQL Query Browse, funciona correctamente.

¿Que puedo estar haciendo mal en la consulta dentro de "config.properties"

Saludos
 

Sergio Castellari

Active Member
Licensed User
Hola @edgar_ortiz
Gracias por tu sugerencia, pero tampoco funcionó.
Aparentemente la cláusula LIMIT debe ser ser fija y no dinámica. O quizás tiene una sintaxis que desconocemos.
Mi intensión era parametrizar desde la APP dicho limite pero he decidido colocarle un valor fijo y listo. De esa forma si funciona

sql.select_articulos_precios=Select a.CODIGO, a.CODIFICADO, a.NOMBRE, a.PVENTA, a.PVENTA_2, a.PVENTA_3, a.PVENTA_4, a.PVENTA_5, a.DOLARIZADO From ARTICULO a \
Where a.FECHAEGRE="0000-00-00" and Substr(a.NOMBRE,1,?)=? order by a.NOMBRE Limit 250

Abrazos totales!
 

cristian petersen

Member
Licensed User
Hola Sergio,

Podes hacer lo siguiente: En el archivo de JRDC llamas a un procedimiento almacenado y ahi pones este script pero adecuado a tu necesidad.
SQL:
set @limite = 3;

PREPARE STMT FROM 'SELECT * FROM potreros LIMIT ?';
EXECUTE STMT USING @Limite ;

Vos elegis de pasar el @limite como parametro desde tu app, que sea un SELECT o cualquier otra cosa.

Saludos
 

Omar Parra A.

Expert
Licensed User
Longtime User
Hola Sergio,

Podes hacer lo siguiente: En el archivo de JRDC llamas a un procedimiento almacenado y ahi pones este script pero adecuado a tu necesidad.
SQL:
set @limite = 3;

PREPARE STMT FROM 'SELECT * FROM potreros LIMIT ?';
EXECUTE STMT USING @Limite ;

Vos elegis de pasar el @limite como parametro desde tu app, que sea un SELECT o cualquier otra cosa.

Saludos
ver:
 
Top