cláusula Order by impide actualizar en tiempo real?
De acuerdo al código proporcionado por lepe aqui y que lo añado que permite modificar datos arrojados por una consulta en un DBGrid,:
Estoy ahora con ésto: Tengo, una sola tabla, que nada tiene que ver con el hilo antes mencionado, donde se almacena: Cita:
Ahora bien, he puesto Combobox (para facilidad), para : Cita:
Veremos un ejemplo, aplicado, donde la consulta es: Cita:
Cita:
El código de la consulta:
Veamos....esto funciona....me permite modificar las calificaciones que corresponden a los meses del bimestre X, pero, dado que puede que la entrada de los nombres no se haya dado alfabéticamente o simplemente se capturaron 5 de primero y 10 de segundo y sin orden albético implementé esto: Una consulta, llamada Bimestrales la cual, no tiene código porque:
La cláusula "ORDER BY" añadida en el código anterior, que no estaba en el primer código, no me permite modificar los datos de los meses correspondientes al Bimestre elegido....lo sé porque ya la quité en un ítem y en otro no, y en donde lo quité permitió modificar..caso contrario el otro Alguna sugerencia??...Espero no haber hecho mucho desastre con esto... pero prefiero el comentario por exceso de información que por falta....ahora puedo recibir uno por confusión y falta de explicación..:D:D:D:D Agraedciendo el tiempo...es que no sé porque la cláusula no deja modificar..:(:( {Saludos} |
Pues efectivamente una consulta que implique a más de una tabla, o que símplemente contenga la claúsula Order by no es actualizable.
Mírate el componente TUpdateSql. Un Saludo. |
A ver...según veo en el Componente, TUpdateSql, requiere sentencias SQL, y por el ejemplo de la cuestión que me tiene aquí, si arrojo los datos mediante un query, como podría aplicar, por decir, para modificar los datos de Sep, Oct y Bim1, mediante el TupdateSql, si no puedo escribir en el Grid?:confused::confused::o:(
Digo la ayuda habla de actualización en tiempo real,eso es lo que necesito, pero desconozco la utilización. Agradezco las respuestas, Marcos, y aprovecho para enviar un cordial Saludo! {Saludos} |
Bien, pues basándome un poco en los filtros, he decidido hacerlo de una manera un tanto cuanto arcáica...
Apliqué un filtro a la tabla, donde:
Donde, la selección de los meses no está condicionada, pero, aquí lo arcáico, dependiendo del Bimestre que se haya seleccionado, se ocultan las columnas restantes, correspondientes a los otros meses en "desuso" por decirlo así; en el DBGrid, y cambio la propiedad de sólo lectura de las columnas correspondientes a Apellido, Nombre, etc...... Sé que es costoso hacerlo así, por lo del filtro; que se pudo hacer de una mejor manera, claro!!, lo sé!!, el problema es que no supe como, además de que la parte visual es Super Importante en esta interfaz...y requería hacerlo algo así como lo he hecho.... Bien. Pues atendiendo la guía de estilo he puesto una respuesta de cómo solucioné el problema, aunque la solución no haya sido la mejor :(... {Saludos} |
La razon fundamental es que no hay una clave unica que identifique a la fila. De acuerdo al motor de datos, puede o no que implique algo el order by (y dudo que eso le importe a un motor sql...)
Rutinariamente he trabajado con vistas de muchas tablas y diferentes ordenes y hasta con groups by. Lo importante es que cada tabla tenga su PK o un TIMESTAMP. Si la BD que usas no es un motor sql, tonces es al estilo TUpdateSql... |
La franja horaria es GMT +2. Ahora son las 23:21:38. |
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