FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
ADOQuery que devuelva campo booleano...
Buenos dias a todos,
Estoy intentando que la siguiente consulta devuelva el campo 'Seleccionado' como booleano y no soy capaz:
He probado lo siguiente, pero sigue sin identificar el campo como booleano
He provado con CAST y varias combinaciones y nada. El resultado que se obtiene es un -1 o 0. Seguramente será algo trivial pero no he sido capaz de verlo. Se os ocurre alguna alternativa? Gracias de antemano |
#2
|
||||
|
||||
¿Y el campo "seleccionado" de qué tipo es y qué valores almacena?
Si es un campo numérico y contiene los valores 0 ó 1 (0.false 1.true) entonces tienes varias formas de hacerlo. Si seleccionado=1 entonces la variablebooleanda almacenará true, en caso contrario almacenará false. |
#3
|
|||
|
|||
El campo es de tipo boolean, para que salga un checkbox directo en un dbgrid sin tener que añadir más código. De hecho con sqlite lo tengo funcionando, ya que el wrapper que uso tiene un evento que cuando crea los campos el query (onInitFieldDef) donde le indicas que el campo Seleccionado sea de tipo ftBoolean.
En el caso del ADOQuery no veo la forma. Gracias por tu interés |
#4
|
||||
|
||||
Hola xalo.
Según esta documentación Datatypes In SQLite: Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Buenas tardes,
Gracias por vuestras respuestas Realmente lo que busco es que de forma directa reconozca el campo que creo en la consulta como boolean, para que al mostrar el dbgrid salga lo que se muestra en resultadodeseado.png y no de la manera que se muestra en resultadoactual.png Se que en el dbgrid se puede hacer que cambie el comportamiento, pero de la misma manera que hice con sqlite, intuyo que con adoquery habrá alguna forma más simple y directa también. (Nota: En este ejemplo la columna en cuestion se llama SELE) Gracias |
#6
|
||||
|
||||
Hola xalo.
La verdad es que como no vemos el código donde asignas el valor es dificil darte una respuesta acertada. Como comentas mas arriba estas usando los componentes ADO, por lo que podrías hacer directamente: No se me ocurre otra forma de asignar el valor de un campo a la propiedad Checked de un TCheckBox. Me pregunto si no estarás hablando de un TDBCheckBox... Por que si es el caso, este último posee las propiedades ValueChecked y ValueUnChecked que podes configurar con los valores que desees que considere como verdadero y falso. Por ejemplo para que interprete los valores 0 y 1 como False y True respectivamente:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
No tengo mi entorno de desarrollo a la mano pero quizás sirva lo siguiente :
1. Escribir la sentencia select con valores permitidos por el motor específico de bases de datos : 'SELECT Cast(1 as integer) as Seleccionado, Id, Nombre FROM Clientes'; 2. Crear campos persistentes en el adoquery y forzar el campo "Seleccionado" como un TBooleanField. La secuencia de pasos más o menos sería Click derecho sobre el AdoQuery -> Adicionar todos los campos -> de la lista borrar el campo "Seleccionado" -> Adicionar campo para adicionar un nuevo campo con nombre "Seleccionado" de tipo boolean. Insisto, es solo una idea, pero podría funcionar. Nota 1: Los pasos en el punto 2 suponen que el AdoQuery existe en tiempo de diseño. Nota 2: El codigo del #1 :
debería ser
La colección de Items empieza en cero y no en uno. Última edición por orodriguezca fecha: 26-02-2014 a las 03:00:28. Razón: Fallo en la red. No pude terminar el texto. |
#8
|
|||
|
|||
Gracias orodriguezca y ecfisa,
He probado lo que me dices y continua identificando un smallint aunque lo fuerces muestra un -1 para un true o el numero que especifiques. No hay código que mostrar, es tan simple como un adoquery->datasetprovider->clientdataset->jvDBUltimgrid y el único código es el de asignar consulta y abrir el adoquery como muestro en el primer post. Tienes razon orodriguezca en el elemento 0 del item por lo que quedaría:
y el objetivo es poder tener en el clientdataset los elementos seleccionados/no seleccionados marcando el checkbox que sale en el dbgrid y tratarlos (como ya dije en sqlite lo tengo implementado y funcionando) por eso me extraña este comportamiento. |
#9
|
||||
|
||||
Haz lo que te ha dicho ecfisa
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
recorrer tabla y verificar Campo Booleano | n03l | Tablas planas | 3 | 10-03-2012 00:00:05 |
Campo Booleano en MySQL | cmfab | Varios | 5 | 29-12-2010 11:40:01 |
filtrar por campo booleano | ale_metall | Varios | 4 | 03-10-2008 22:52:28 |
Funcion que devuelva la longitud de un campo en una SQL para BDE en Delphi7 | Kivan | SQL | 5 | 20-05-2005 20:10:49 |
Ordenar un campo Booleano en MySQL | Brewster | MySQL | 3 | 24-01-2005 10:52:38 |
|