Problemas con clientdataset y limit
Buenas,
Primero no se si esta opcion tendria que ir aqui o en provider, si esta mal que el moderador lo cambie. Segundo, me ha surgido un problema con los clientdataset del que todavia no salgo de mi asombro, en la SQL que lo alimenta se pone la clausula LIMIT para poder traer menos registros y mostrar como si fueran paginas. He comprobado que en determinadas ocasiones el CLIENT me devuelve menos registros de los que esta establecido en el limit. Imaginaros lo siguiente, tengo una tabla con 500 registros y la siguiente SQL select * from clientes limit 20,10 Esto en teoria mostraria 10 clientes concretamente del 21 al 30, pues bien en el client a veces en vez de retornarme 10 registros me devuelve 3 ó 5 ó 6 ó los que le da la gana. Me hundo en un mar de confusiones. ¿A que puede ser debido? Un saludoy gracias por la respuesta |
¡Hola!
De entrada debes mencionar qué base de datos utilizas y considera que la tabla puede tener realmente menos de 30 registros. Desconocía eso de "Limit" ya que no es del estándar SQL (que yo sepa). También te faltó mencionar qué componentes utilizas para conectarte a la base de datos y ejecutar la consulta. Esperamos retroalimentación. Al González. :) |
Cita:
Es Mysql, Limit mysql, Top Sql Server y otros, RowNum Oracle, Fetch N Rows Forward Only Db2, Y así. |
Ese MySQL siempre tan rebelde. Mira que usar el "limit" al final y no al comienzo de la sentencia....:p
Por cierto, te faltó el de Firebird, Edgar: First. Saludos. Al. |
Cita:
jajaj, buen complemento amigo AL, pero firebird no es un motor que me guste. (No digo que sea malo o bueno, solo no cumple con mis necesidades) Saludos. |
Cita:
|
InterBase 7.x y 2007 :)
ROWS value [TO upper_value] [BY step_value] [PERCENT][WITH TIES] Ejemplos SELECT SALESMAN, SALES_DOLLARS, SALES_REGION FROM SALESPEOPLE ORDER BY SALES_DOLLARS DESC ROWS 1 TO 50; SELECT SALESMAN, SALES_DOLLARS, SALES_REGION FROM SALESPEOPLE ORDER BY SALES_DOLLARS DESC ROWS 50 TO 100 WITH TIES; Si puede utilizar en Updates y Deletes Saludos, Andreano |
Buenas, el problema no es con la base de datos por eso no la especifique. Ahora que os confirmo que es MYSQL 5.
Continuo haciendo pruebas y he descubierto algo bastante extraño, he creado una aplicacion nueva que contiene un client y un dbgrid completamente nuevecitos (para probar de forma aislada) y parece no fallar nunca.:confused: Es posible que me toque eliminar el form y volverlo a crear de nuevo porque se haya jodido el componente. (cosa plausible ya que es una migracion de Delphi7 a Delphi2007) |
Cita:
Saludos. Al. :) |
Cita:
|
Lo he revisado y ya estaba en "-1", hoy os contare si consigo algo ya que voy a eliminar los componentes y volverlos a crear.
|
Es la cosa mas rara que me he podido encontrar pero... se ha solucionado eliminando los componentes y volviendolos a poner ¡¡con las mismas opciones puestas!!
|
La franja horaria es GMT +2. Ahora son las 04:16:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi