Hola
Esto ya me tiene mosqueado desde hace tiempo, pero con consultas como
esta (Atención al DISTINCT):
SELECT DISTINCT ventacabecera.* FROM ventacabecera LEFT JOIN cursoalumno
ON ventacabecera.id_alumno=cursoalumno.id_alumno LEFT JOIN colegioalumno
ON colegioalumno.id=cursoalumno.id_colegioalumno WHERE
ventacabecera.baja = 0 AND fecha >= "2012.09.01 00:00:00.000" AND fecha
<= "2012.09.30 00:00:00.000" AND serie = "PG.2012/" AND
colegioalumno.id_convocatoria= 3 AND colegioalumno.id_colegio=
1 AND colegioalumno.id_curso= 4 ORDER BY
ventacabecera.fecha ASC, ventacabecera.serie ASC, ventacabecera.numero ASC
Xailer se inventa una consulta que termina largando el error de la imágen.
Alguien, hace tiempo, dijo que "_RowId_ AS _RowId_" lo ponía SQLite por
no se que cosas. Pienso que si eso lo pusiese SQLite ya habrían tenido
cuidado de controlar el no separar el DISTINCT del SELECT, lo que me
hace sospechar a algún tipo de apaño de Xailer.
En fin, que estas cosas son las que al final hacen que uno no pueda
confiar al 100% de los Data.... enlatados POR QUE NO SE SABE QUE HACEN
POR DENTRO Y SI VAN A DARTE ESTE TIPO DE SORPRESAS.
Mis disculpas, pero me altera muchísimo que por tomar por la calle de en
medio se rompan cosas que deberían ser estándar.
Saludos
Alf+.
--
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
¿Por qué pasan estas BURRADAS con la Select en TSQLiteDataSource y TSQLQuery?
-
- Mensajes: 420
- Registrado: Sab Ago 16, 2008 9:06 pm
¿Por qué pasan estas BURRADAS con la Select en TSQLiteDataSource y TSQLQuery?
José Alfonso,
Cuando se utiliza TSqlQuery o TSqlTable, Xailer añade el campo _RowId_
al principio de la lista de campos, porque lo necesita para poder hacer
los UPDATEs de filas. Lo que ha pasado aquí es que Xailer no ha
contemplado el uso de DISTINCT en el SELECT, y de ahí el error.
No obstante, cuando se hace una consulta compleja, como ésta, es
conveniente utilizar otros métodos, como QueryArray(), en vez de crear
un TSqlQuery, que entraña mucha más complejidad, debido precísamente a
la capacidad de grabar datos, no sólo leerlos.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Cuando se utiliza TSqlQuery o TSqlTable, Xailer añade el campo _RowId_
al principio de la lista de campos, porque lo necesita para poder hacer
los UPDATEs de filas. Lo que ha pasado aquí es que Xailer no ha
contemplado el uso de DISTINCT en el SELECT, y de ahí el error.
No obstante, cuando se hace una consulta compleja, como ésta, es
conveniente utilizar otros métodos, como QueryArray(), en vez de crear
un TSqlQuery, que entraña mucha más complejidad, debido precísamente a
la capacidad de grabar datos, no sólo leerlos.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
-
- Mensajes: 420
- Registrado: Sab Ago 16, 2008 9:06 pm
¿Por qué pasan estas BURRADAS con la Select en TSQLiteDataSource y TSQLQuery?
Gracias Jose,
Suponía que era por eso.
Disculpad el mosqueo, pero entre que casi no puedo andar con los dos
tobillos estropeados, el cliente metiéndome bulla por teléfono, la
select que no funcionaba bien ..... Todo se juntó en un momento de furia
del que me controlé todo lo que pude.
Gracias por responder.
Saludos,
Alf+.
El 14/01/2013 9:44, Jose F. Gimenez escribió:
> José Alfonso,
>
> Cuando se utiliza TSqlQuery o TSqlTable, Xailer añade el campo _RowId_
> al principio de la lista de campos, porque lo necesita para poder hacer
> los UPDATEs de filas. Lo que ha pasado aquí es que Xailer no ha
> contemplado el uso de DISTINCT en el SELECT, y de ahí el error.
>
> No obstante, cuando se hace una consulta compleja, como ésta, es
> conveniente utilizar otros métodos, como QueryArray(), en vez de crear
> un TSqlQuery, que entraña mucha más complejidad, debido precísamente a
> la capacidad de grabar datos, no sólo leerlos.
>
>
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
Suponía que era por eso.
Disculpad el mosqueo, pero entre que casi no puedo andar con los dos
tobillos estropeados, el cliente metiéndome bulla por teléfono, la
select que no funcionaba bien ..... Todo se juntó en un momento de furia
del que me controlé todo lo que pude.
Gracias por responder.
Saludos,
Alf+.
El 14/01/2013 9:44, Jose F. Gimenez escribió:
> José Alfonso,
>
> Cuando se utiliza TSqlQuery o TSqlTable, Xailer añade el campo _RowId_
> al principio de la lista de campos, porque lo necesita para poder hacer
> los UPDATEs de filas. Lo que ha pasado aquí es que Xailer no ha
> contemplado el uso de DISTINCT en el SELECT, y de ahí el error.
>
> No obstante, cuando se hace una consulta compleja, como ésta, es
> conveniente utilizar otros métodos, como QueryArray(), en vez de crear
> un TSqlQuery, que entraña mucha más complejidad, debido precísamente a
> la capacidad de grabar datos, no sólo leerlos.
>
>
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info