Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-03-2012
Walterio Walterio is offline
Miembro
 
Registrado: nov 2006
Posts: 46
Poder: 0
Walterio Va por buen camino
TADOQuery, ClientDataSet y edición de campo NO persistente

Hola amigos...
Uso Delphi 6, un TAdoQuery, un TDataSetProvider y un TClientDataSet.
Esta es mi consulta SQL :

Código SQL [-]
sQuery := 'SELECT ' +
               QuotedStr('.') + ' as TAG,' +
               'st384.id384,' +                
               'st384.CCY384,'+
               'st384.NCY384,'+
               'st384.RES384,'+
               'st384.UFA384 '+
               'FROM st384';

Esto pasa a un ClientDataSet por medio de su provider y se muestra en un DbGrid sin problema.
Lo que me está pasando es que, estando en la grilla y apretando en la tecla espaciadora, el campo TAG debe cambiar de '.' a '' o viceversa.
El problema está que al intentar hacerlo, me sale un mensaje diciendo que el campo TAG no es editable.
Esto mismo lo tengo implementado en otro sistema, con la diferencia que en vez de ADOQuery utilizo tablas DBF (sin Provider), donde previamente copio la estructura de la tabla DBF en en ClientDataSet, alli le creo el campo TAG y después recorro la tabla DBF pasandole los datos al ClientDataSet.

Ya probé de cambiarle los valores de Providerflag al campo TAG, cosa de no tener alcance en el update de la query, pero tampoco funcionó (de este último "truco" no estoy muy convencido, pero quería probarlo).

Desde ya, agradezco toda ayuda, pista, truco o brujería que me pueda ayudas.

Saludos.

Última edición por Casimiro Notevi fecha: 19-03-2012 a las 15:05:54.
Responder Con Cita
  #2  
Antiguo 19-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No entiendo la sentencia, ¿ese sql de qué BD es?, nunca había visto el 'select .' (punto) en una sql de esa forma.
Responder Con Cita
  #3  
Antiguo 19-03-2012
Walterio Walterio is offline
Miembro
 
Registrado: nov 2006
Posts: 46
Poder: 0
Walterio Va por buen camino
TADOQuery, ClientDataSet y edición de campo NO persistente

Hola Casimiro....
La BD es MySQL y el campo '.' As Tag es un campo que creo en la consulta (no es un campo persistente de la tabla de la BD) que me muestra en la grilla una columna con el dato '.'
Lo que necesito es que al presionar la barra espaciadora, el valor '.' pase a '' (vacio) o viceversa.Este dato lo necesito para mostrar como un registro "seleccionado" por el usuario, dependiendo del valor que tenga almacenado este campo('.'=Seleccionado, ''=NoSeleccionado).Como comenté antes, éste método lo utilizo con dbf y clientdataset sin provider y me funciona a la perfección.
De todas formas, estoy abierto a todas sugerencias de cómo hacer que desde la grilla de datos, el usuario "seleccione" un/unos registros para su posterior tratamiento, que es ese el propósito del tan mencionado campo.

Nuevamente, muchas gracias.
Responder Con Cita
  #4  
Antiguo 19-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo suelo usar 1 y 0 (cero), y saco un checkbox en el grid: 1 es marcado y 0 es desmarcado.
También puedes usar la opción múltiple selección de los grids para hacer eso.
Responder Con Cita
  #5  
Antiguo 20-03-2012
Walterio Walterio is offline
Miembro
 
Registrado: nov 2006
Posts: 46
Poder: 0
Walterio Va por buen camino
TADOQuery, ClientDataSet y edición de campo NO persistente

Hola Casimiro...
Es justamente lo que necesito hacer, el tema es donde almacenar esos valores de 1 y 0 (tambien muestro un checkbox en el grid).Si al apretar la barra espaciadora, anteriormente cambiaba el valor del campo con "." o " " (mostrando el checkbox según corresponda), ahora obtengo el mensaje de que dicha columna no se puede editar.
Como te contaba anteriormente, ese valor (1 o 0) lo almacenaba en un campo creado en tiempo de ejecución del clientdataset cuando usaba tablas dbf, pero como ahora uso un TADOQuery mediante un DataSetProvider conectado al clientdataset, creo el campo desde la query con el famoso '.' (que seria un cero, "0").Lo del multiselect no lo probé, pero una vez me pasó con otro desarrollo que seleccionaba los registros usando multiselect, pero en cuanto movía la grilla hacia abajo o hacia arriba, se perdía esa selección (cosa muy rara).

Gracias nuevamente y saludos.
Responder Con Cita
  #6  
Antiguo 20-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Conozco poco los componentes ADO y me parece que nunca he usado un datasetprovider, así que por ahí no puede ayudar mucho.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Conexión persistente o por demanda? diegofhernando Conexión con bases de datos 3 30-09-2011 16:52:04
Edición campo Fecha-hora fjcg02 Conexión con bases de datos 3 16-05-2008 14:40:08
Edición Campo Memo MySql ekstase SQL 0 03-09-2007 02:44:33
Como puedo cambiar la propiedad de edicion y no edicion a un StringGrid1 ctronx Varios 2 25-06-2004 23:10:19
DBGRID detectar fin de edicion de campo andrestsas Tablas planas 2 12-08-2003 17:11:02


La franja horaria es GMT +2. Ahora son las 15:53:19.


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
Copyright 1996-2007 Club Delphi