Ver Mensaje Individual
  #3  
Antiguo 12-07-2015
DANIEL1818 DANIEL1818 is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 42
Reputación: 0
DANIEL1818 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola DANIEL1818.

Reemplaza el componente ADOTable (detalle) por un ADOQuery y luego este código:
Código Delphi [-]
procedure TForm.FormCreate(Sender: TObject);
begin
  qyDetail.Close;
  qyDetail.DataSource := dsMaster; // DataSource -> Tabla maestro
  qyDetail.SQL.Clear;
  qyDetail.SQL.Add('SELECT * FROM TABLA_DETALLE');
  qyDetail.SQL.Add('WHERE MASTER_ID = :ID AND ESTADO_COMENTARIO <> :BORRADO');
  qyDetail.Parameters.ParamByName('BORRADO').Value := 'DATO_BORRADO';
  qyDetail.Open;
end;
También deberás cambiar:
  • TABLA_DETALLE por el nombre que le hayas dado a la tabla detalle.
  • MASTER_ID por el nombre de la columna de la tabla detalle que referencia a la columna clave de la tabla maestro.
  • ID por el nombre de la columna clave de la tabla maestro. (No quites los dos puntos ":" que preceden al nombre o no funcionará)
  • DATO_BORRADO por el tipo y valor que posee la columna ESTADO_COMENTARIO.
saludos







Gracias por tu respuesta, unas preguntas: 1) el codigo lo pongo en el evento onCreate del formulario que tiene las dos grillas no(la que me muestra el producto y el detalle)?
2)la verdad no entendi muy bien, ya que nunca lo hice de esta forma y estoy un poco perdido,ya puse ese codigo como me dijiste y ya en la primer linea me tira error fuera de memoria, lo que hice fue agregar un ADOQuery en el datamodule, y no lo active ni nada porque no me deja ya que no tiene escrito en su interior sentencia sql. El codigo que puse en el evento onCreate fue:
Código Delphi [-]
  procedure TForm1.FormCreate(Sender: TObject);
begin
  DM.QueryDETALLEComentario.Close;
  DM.QueryDETALLEComentario.DataSource := DM.ds_productos; // DataSource -> Tabla maestro
  DM.QueryDETALLEComentario.SQL.Clear;
  DM.QueryDETALLEComentario.SQL.Add('SELECT * FROM Comentario');
  DM.QueryDETALLEComentario.SQL.Add('WHERE id_sub = :id_sub AND estado_comentario <> :BORRADO');
  DM.QueryDETALLEComentario.Parameters.ParamByName('BORRADO').Value := true;
  DM.QueryDETALLEComentario.Open;
end;


No entiendo como puedo hacer para que funcione, porque que pasa con el dbgrid_Comentario (DETALLE) en el formulario? lo asocio al query que me dijiste que ponga en reemplazo del ADOtable que tenia antes? porque ya lo hice y tampoco funciona. El dbgrid que me muestra todos los productos esta asociado a varias querys, ya que se puede filtrar por fecha, por nombre del producto etc.

Espero tu respuesta! y muchas gracias por tu ayuda!

Última edición por DANIEL1818 fecha: 12-07-2015 a las 01:32:37.
Responder Con Cita