Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Poder: 0
DANIEL1818 Va por buen camino
Actualización desfasada en DBGrid

Hola!! como estan? les cuento lo que me pasa, en ACCESS tengo (entre otras tablas) una tabla de PRODUCTOS y otra COMENTARIOS que la gente realiza para esos productos. En el form tengo un "DBGrid_Productos" donde muestra todos los datos de los productos y otro mas "DBGrid_Comentarios" donde al hacer click sobre uno de los productos (del DBGrid_Productos) se actualiza el "DBGrid_Comentarios" con todos los comentarios de todas las personas que realizaron sobre ese producto.

EL PROBLEMA ES EL SIGUIENTE: cuando me muevo para abajo sobre el DBGrid_PRODUCTOS con las felchas del taclado me muestra correctamente los comentarios sobre el otro dbgrid "DBGrid_COMENTARIOS", pero cuando quiero moverme hacia arriba (también con las flechas del teclado) me los muestra defasados, es decir si tengo:

mesa
bicicleta
silla
celular

cuando estoy parado en el ultimo registro (celular) y subo con las flechas hacia "silla" el cual tiene comentarios este NO se muestra, pero si subo uno mas hasta "bicicleta" recien ahi me muestra el comentario de la silla y asi sucesivamente con los demas productos si sigo subiendo. Porque puede ser que este pasando esto??

ESTE ES EL CODIGO QUE TENGO ASOCIADO AL EVENTO OnDrawColumnCell DEL DBGrd_PRODUCTOS:

Código Delphi [-]
 DM.QueryVerComentariosSub.Close;
  DM.QueryVerComentariosSub.Parameters.ParamByName('identificadorSubasta').Value:= DM.QueryTodasLasCatid_sub.Value; //QueryTodasLasCatid_sub me da el identificador de la 
                                                                       // subasta en la que estoy parado en la grilla de productos.
  DM.QueryVerComentariosSub.Open;

Necesito de sus ayudas!! muchisimas gracias!!

Última edición por Casimiro Notevi fecha: 22-06-2015 a las 10:42:38.
Responder Con Cita
  #2  
Antiguo 22-06-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 16
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Hola Daniel.

En realidad el Grid no deberia ser el encargado de realizar el filtrado, su unica funcion es proveer una representacion visual de informacion de un TDataSet. Dicho TDataSet se especifica en la propiedad DataSet del DataSource del Grid. Me seguis?

Entonces, te quedan dos alternativas:

1. Delphi tiene la opcion de configurar relaciones Maestro-Detalle, de esto viene un demo con Delphi y hay millones de ejemplos por todos lados

2. No utilizar un evento del DBGrid, hacerlo en un evento del del DataSet. Prueba a mover tu codigo en el evento AfterScroll del DataSet
Responder Con Cita
  #3  
Antiguo 22-06-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Poder: 0
DANIEL1818 Va por buen camino
Agustin! muchas gracias por tu ayuda tanto en este y otros problemas! la solución maestro-detalle funcionó a la perfección!
Responder Con Cita
  #4  
Antiguo 22-06-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Poder: 0
DANIEL1818 Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Hola Daniel.

En realidad el Grid no deberia ser el encargado de realizar el filtrado, su unica funcion es proveer una representacion visual de informacion de un TDataSet. Dicho TDataSet se especifica en la propiedad DataSet del DataSource del Grid. Me seguis?

Entonces, te quedan dos alternativas:

1. Delphi tiene la opcion de configurar relaciones Maestro-Detalle, de esto viene un demo con Delphi y hay millones de ejemplos por todos lados

2. No utilizar un evento del DBGrid, hacerlo en un evento del del DataSet. Prueba a mover tu codigo en el evento AfterScroll del DataSet


Hola Agustin, disculpa las molestias, como te dije la relacion maestro-detalle funciona bien, pero ahora me doy cuenta que dejó de funcionarme los distintos tipos de filtrado de productos (tengo un Edit donde podes filtrar los productos por nombre, y un comboBox que filtra por categoría de producto) y luego de agregar el DBgrid_COMENTARIOS y hacer la relacion Maestro-Detalle dejo de funcionar, y cuando quiero filtrar un producto a traves del EDIT el error que me sale es:

" Project Project1.exe raised exception class EDatabaseError whit message 'Query_soloTitulo: Field 'id_sub' notfound'

donde "Query_soloTitulo" es la consulta que te filtra solo por nombre de producto, y donde "id_sub" es es identificador de cada producto.

No me podrias dar una mano con esto? estoy hace horas y no puedo hacerlo funcionar, Espero tu respuesta. MUCHISIMAS GRACIAS!!
Responder Con Cita
  #5  
Antiguo 22-06-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Poder: 0
DANIEL1818 Va por buen camino
o alguien podrá ayudarme a resolver este problema?? necesito de sus ayudas!
Responder Con Cita
  #6  
Antiguo 22-06-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Poder: 0
DANIEL1818 Va por buen camino
Problema relación maestro-detalle mas filtrado en DBGrid

Hola todos! voy directo al grano, tengo un problema que desde hace mucha horas no puedo resolver y me traba con el avance del proyecto, esto es: en una base de datos en ACCESS tengo dos tablas (entre otras mas) de "PRODUCTOS" para vender y otra de "COMENTARIOS" (los comentarios son los que las personas pueden realizar a esos productos). Entonces: en el form principal tengo un DBGrid_productos donde aparecen todos los productos, y un EDIT en el cual realizo filtraciones de productos a traves de su nombre con un ADOQuery.

Luego agrego otro DBGrid_comentarios al mismo form en el cual hice una relacion Maestro-Detalle, osea a medida que navego en el DBGrid_productos me aparecen todos los comentarios para ese producto en el DBGrid_comentarios. Hasta ahi todo bien, EL PROBLEMA SURGE CUANDO: surge cuando quiero realizar el filtrado por nombre de producto y sale el siguiente error:

" Project Project1.exe raised exception class EDatabaseError whit message 'Query_soloTitulo: Field 'id_sub' notfound'

donde "Query_soloTitulo" es la consulta que te filtra solo por nombre de producto, y donde "id_sub" es es identificador de cada producto.

ME PODRIAN DAR UNA MANO? SE LOS AGRADECERIA MUCHISIMO!!
Responder Con Cita
  #7  
Antiguo 22-06-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No crees nuevos hilos para seguir con el mismo tema, continua en el que has empezado. Gracias.
(He unido ambos hilos)
Responder Con Cita
  #8  
Antiguo 22-06-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Poder: 0
DANIEL1818 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No crees nuevos hilos para seguir con el mismo tema, continua en el que has empezado. Gracias.
(He unido ambos hilos)



Mil disculpas lo voy a tener en cuenta. Y vos no me podrías ayudar con este problema? ya que sigo sin poder encontrarle la solución. Desde ya muchisimas gracias y disculpa las molestias!!
Responder Con Cita
  #9  
Antiguo 22-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Daniel.

Es que no conocemos nada sobre lo que estas consultando...
  • ¿ Con que colección de componentes te conectas a la base de datos ?
  • ¿ Con que componentes específicamente ? Ej: ¿ ADOTable, ADOQuery,... ?
  • ¿ Que tablas y que campos intervienen en la relación master/detail ? (no todos, los significativos)
  • ¿ Sobre que tabla estas intentando el filtrado ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 23-06-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Poder: 0
DANIEL1818 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Daniel.

Es que no conocemos nada sobre lo que estas consultando...
  • ¿ Con que colección de componentes te conectas a la base de datos ?
  • ¿ Con que componentes específicamente ? Ej: ¿ ADOTable, ADOQuery,... ?
  • ¿ Que tablas y que campos intervienen en la relación master/detail ? (no todos, los significativos)
  • ¿ Sobre que tabla estas intentando el filtrado ?

Saludos


A la base de datos me conecto mediante un ADOConection (la base esta hecha en access) y utilizo Delphi 2010.

-En el DBGrid_PRODUCTOS que es la 1er grilla (grilla Master) lo tengo asociado a un DataSource que su DatSet esta asociado a un AdoQuery_todasLasCateg que filtra todos los productos.

-En el DBGrid_COMENTARIOS que es la 2da grilla en el mismo Form (grilla Detalle) la tengo asociada a un DataSource el cual su DataSet esta asociado al ADOTable que tiene la Tabla "comentario" de la base de datos ACCESS. Hasta ahi me seguis? En este ADOTable el MasterSource esta asociado al AdoQuery_todasLasCateg dicho al principio, y en el MasterField asocio el id_producto de la tabla COMENTARIOS con el id_producto de la tabla PRODUCTOS.

Ojala me hayas podido entender mejor, y puedas ayudarme, espero tu respuesta, muchísima gracias nuevamente!!
Responder Con Cita
  #11  
Antiguo 23-06-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por DANIEL1818 Ver Mensaje
Mil disculpas lo voy a tener en cuenta. Y vos no me podrías ayudar con este problema? ya que sigo sin poder encontrarle la solución. Desde ya muchisimas gracias y disculpa las molestias!!
Gracias por tu colaboración
Responder Con Cita
  #12  
Antiguo 23-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Daniel.

Básicamente entiendo la situación pero mencionas que te dá el error,
Cita:
Project Project1.exe raised exception class EDatabaseError whit message 'Query_soloTitulo: Field 'id_sub' notfound'
y eso cláramente te esta diciendo: El campo (o columna) "id_sub" no existe en la consulta que realizas en "Query_soloTitulo".
Es por eso que te solicité mas información, sobre todo es importante la consulta SQL.

A ver si ejemplificando me explico mejor... Si asigno esta consulta a un query:
Código Delphi [-]
  with ADOQuery1 do
  begin
    SQL.Clear;
    SQL.Add('SELECT CL.NOMBRE, CA.NOMBRE_CALLE, CL.NUMERO ');
    SQL.Add('FROM CLIENTE CL ');
    SQL.Add('INNER JOIN CALLE CA ON CL.CALLE_ID = CA.ID');
    SQL.Add('WHERE CL.ID = :IDCLI');
    Parameters.ParamByName('IDCLI').Value := xxx
    Open;
  end;
Y luego le salgo pidiendo:
Código Delphi [-]
   ShowMessage( IntToStr(ADOQuery1.FieldByName('ID_CLIE').Value) );
voy a recibir el mismo mensaje que has recibido, ya que la columna ID_CLIE nunca fué declarada en la sentencia SELECT.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 23-06-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Poder: 0
DANIEL1818 Va por buen camino
Muchas gracias por sus ayudas y sus tiempos empleados en ello!! ya lo pude resolver.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problema con ApplyUpdate en relación maestro/detalle Ignacio Gentile Providers 1 26-12-2012 13:43:36
Maestro Detalle con ClientDataset Filtrado Joser Varios 6 19-09-2012 19:53:54
Saber si el DBGrid (Detalle) esta Vacio en Relacion Maestro/Detalle Adrian Murua Conexión con bases de datos 2 03-01-2009 14:48:46
Problema con relación maestro-detalle en ClientDataSet David Conexión con bases de datos 3 11-01-2008 12:02:59
Problema relacion maestro-detalle (Nested Dataset) Toni Conexión con bases de datos 10 19-05-2004 17:38:56


La franja horaria es GMT +2. Ahora son las 01:50:22.


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