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 04-11-2013
Irlod Irlod is offline
Registrado
NULL
 
Registrado: nov 2013
Posts: 5
Poder: 0
Irlod Va por buen camino
Filtrado de registros de dos tablas erróneos

Hola amigos.
Necesito vuestra ayuda para resolver una cuestión que llevo tiempo intentando resolver. En Access tengo una BD con varias tablas, entre ellas tengo las tablas: Equipos y OperacionesEquipos, con un campo común a las dos: EUIPOCODIGO.
En el proyecto de Delphi tengo un formulario con un PageControl con cuatro pestañas. En las tres primeras me muestra a través de DBEdits todos los campos de la ficha Equipo. En la cuarta pestaña en colocado una DBGrid para que me liste todos los registros para un equipo dado de la tabla OperacionesEquipos.
Mi problema está en que me registra todos los registros, y yo solo quiero que me muestre los de un equipo concreto.

En el código he creado un DataSource y un ADODataSet

En la consulta SQL del ADODataSet he escrito:

Código SQL [-]
SELECT *
FROM EquiposLaboratorio, OperacionesEquipos
WHERE EquiposLaboratorio.EQUIPOCODIGO = OperacionesEquipos.EQUIPOCODIGO
order by EquiposLaboratorio.EQUIPOCODIGO

También lo he intentado con otros DataSource y ADODataSet fijado para el DBGrid pero el resultado es el mismo.

¿Me podrían ayudar?. Muchas gracias.
Responder Con Cita
  #2  
Antiguo 04-11-2013
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 Irlod y bienvenido a Club Delphi

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Proba de este modo:
Código Delphi [-]
  with ADODataSetOperaciones do
  begin
    Close;
    CommandText := 'SELECT * FROM OPERACIONESEQUIPOS WHERE EQUIPOCODIGO = :CODIGO';
    Parameters.ParamByName('CODIGO').Value :=
      ADODataSetEquipos.FieldByName('EQUIPOCODIGO').Value;
    Open;
  end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 04-11-2013 a las 15:48:51. Razón: corregir nombre de parametro
Responder Con Cita
  #3  
Antiguo 04-11-2013
Irlod Irlod is offline
Registrado
NULL
 
Registrado: nov 2013
Posts: 5
Poder: 0
Irlod Va por buen camino
Gracias ecfisa, ya me había dado cuenta.

He cambiado temporalmente en la base de datos los campos EQUIPOCODIGO , por E_EQUIPOCODIGO y O_EQUIPOCODIGO para no liarnos.

Sigue sin funcionarme. Adjunto te remito el procedimiento completo de la parte donde me dá el error:

Código Delphi [-]
procedure TForm_FichaEquiposLab.FormCreate(Sender: TObject);

begin


    ADODataSet1.Active:= True;
    ADODataSet2.Active:= True;


    ADOdataSet2.Close;
    ADODataSet2.CommandText := 'SELECT * FROM OPERACIONESEQUIPOS WHERE O_EQUIPOCODIGO = :E_EQUIPOCODIGO';
    ADODataSet2.Parameters.ParamByName('O_EQUIPOCODIGO').Value :=
      ADODataSet1.FieldByName('E_EQUIPOCODIGO').Value;
    ADODataSet2.Open;

end;
Responder Con Cita
  #4  
Antiguo 04-11-2013
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 Irlod.

Para ponerlos en relación master/detail y que se vaya reflejando a medida que te desplazas por "equipos", sería algo parecido a:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  with ADODataSet2 do
  begin
    Close;
    CommandText := 'SELECT * FROM OPERACIONESEQUIPOS WHERE O_EQUIPOCODIGO = :E_EQUIPOCODIGO';
    DataSource  := DataSource1; // <- DataSource asociado a DataSet "Equipos"
    Open;
  end;
end;
Como lógicamente no puedo acceder a tus tablas, hice un demo que utiliza las tablas "Customer" y "Orders" de "dbdemos.mdb" (vienen con Delphi) para que puedas examinarlo con tranquilidad.

Seguramente tengas que editar la cadena de conección del TADOConnection para ubicar a "dbdemos.mdb", en mi caso se encuentra en: "C:\Program Files (x86)\Common Files\Borland Shared\Data".

Saludos
Archivos Adjuntos
Tipo de Archivo: zip Irlod.zip (4,0 KB, 4 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 04-11-2013
Irlod Irlod is offline
Registrado
NULL
 
Registrado: nov 2013
Posts: 5
Poder: 0
Irlod Va por buen camino
Muchas gracias Ecfisa, lo has solucionado. Se soluciona conectando en el DataSource del ObjectInspector el DataSource1. En mi caso tenía conectado el DataSource2 al ADODataSet2.

Muchas gracias de nuevo,
Un saludo
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
Visualizar registros de dos tablas GustavoCruz SQL 5 29-01-2008 20:05:58
Consulta con resultados erroneos Alexander Conexión con bases de datos 1 29-08-2006 03:58:36
Bytes erroneos en comunicacion con puerto COM... Geta Varios 2 15-08-2006 03:13:28
ficheros erroneos vetustas Conexión con bases de datos 2 17-12-2003 18:48:25
Identificar emails erroneos o devueltos Descendents Internet 0 20-11-2003 09:53:47


La franja horaria es GMT +2. Ahora son las 22:05:29.


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