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.

¿Por qué pasan estas BURRADAS con la Select en TSQLiteDataSource y TSQLQuery?

Foro de Xailer profesional en español
Responder
jasm.quitaesto
Mensajes: 420
Registrado: Sab Ago 16, 2008 9:06 pm

¿Por qué pasan estas BURRADAS con la Select en TSQLiteDataSource y TSQLQuery?

Mensaje por jasm.quitaesto »

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+.
--
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

¿Por qué pasan estas BURRADAS con la Select en TSQLiteDataSource y TSQLQuery?

Mensaje por jfgimenez »

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
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jasm.quitaesto
Mensajes: 420
Registrado: Sab Ago 16, 2008 9:06 pm

¿Por qué pasan estas BURRADAS con la Select en TSQLiteDataSource y TSQLQuery?

Mensaje por jasm.quitaesto »

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
Responder