![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Buenas, tengo creado 2 campos calculado en una tabla DBGrid. En el evento OnCellTitle del DBGrid, lo tengo programado para que me ordene por campos, pero cuando lo ordeno por un campo calculado me da error. Os dejo lo que tengo de código:
Código:
void __fastcall TXCatalogos::DBGrid1TitleClick(TColumn *Column) { AnsiString FName = Column->FieldName; XDatos->QCatalogos->Close(); XDatos->QCatalogos->SQL->Text = "SELECT * FROM Catalogo ORDER BY " + FName; XDatos->QCatalogos->Open(); } |
#2
|
||||
|
||||
Cita:
Y es totalmente lógico ya que el campo no existe en la tabla contra la que efectuas la consulta SQL. Una solución, pero que depende de si tu RDBMS lo permite, es declarar el campo calculado en la creación de la tabla. Por ejemplo en Firebird:
Así creada, no tendrías ningún problema en ejecutar la sentencia: Pero desconozco que manejador de bd estés usando y si ofrece esa característica. Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Buenas ecfisa, utilizo Access 2010 y lo conecto con el componente ADO. No es exactamente eso lo que busco. Si alguien tiene otra solución se lo agradecería
|
#4
|
||||
|
||||
Desde aquí no llegamos a ver tu pantalla para leer el error que te da
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
En la imagen viene el error. Un saludo.
|
#6
|
||||
|
||||
Vale, ¿y qué es 'diasrestantes'?
![]() Porque no has dicho nada sobre eso.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
DiasRestante es un campo calculado que no se encuentra en la base datos. Esta calculado para que me muestre la diferencia entre el la fecha_fin del y el dia de hoy.
Un saludo |
#8
|
||||
|
||||
Quizás puedas ordenarlo por su número, por la posición que ocupa, ejemplo:
Esto ordena por el otrocampo
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
|||
|
|||
Pero no aparece en la base de datos, por lo que me da el mismo error.
Un saludo |
#10
|
||||
|
||||
Cita:
Es que que no que hay darle muchas vueltas, usando una sentencia SQL, es como te dije en el mensaje #2. Pero parece que Access si permite la creación de campos calculados, revisa este enlace: Agregar un campo calculado a una tabla Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ordenar adoquery por nuevo campo calculado | lacovera | SQL | 7 | 25-01-2021 09:16:07 |
ordenar query por un campo calculado???? | mguixot | SQL | 4 | 24-10-2012 11:00:36 |
Pasar un campo calculado a un campo del mismo DbGrid | maravert | Conexión con bases de datos | 3 | 12-05-2006 00:31:30 |
Ordenar por un campo calculado | IVAND | SQL | 0 | 24-11-2004 02:17:28 |
Campo Calculado en DBGrid | Agar23 | Tablas planas | 0 | 07-11-2003 09:05:50 |
![]() |
|