Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-01-2007
Kenlyr Kenlyr is offline
Miembro
 
Registrado: abr 2006
Posts: 13
Poder: 0
Kenlyr Va por buen camino
Enlazar varios Combobox a un DBGrid.

Hola Tod@s, si alguin me pudiera proveer alguna ayudatita se lo agradeceria. soy nueva en esto de la programacion y estoy un poco confundida. Estoy diseñando una aplicación que utilice 4 ComboBox y un DBGrid que dependiendo de los items seleccionados en los ComboBoxes se despliegue la información en el DBGrid, es decir se tiene que hacer la busqueda con todos los comboBoxes y desplegar la informacion en el DBGrid.

Cada ComboBox tiene 3,4 o 5 Items y todos tiene que estar relacionados con una tabla donde estan registrado en un solo campo todo lo que contiene los comboBoxes unidos, es decir que se podria hacer la busqueda especificando like o %'' % para que encuentre por lo menos las palabra o letras relacionadas a los comboBoxes.


Tengo en un datamodule mi conexion ADO ,un ADOQuery , un Datasource los cuales ya estan conectados o relacionados a la vez con el DBGrid.

Las tablas que se van a relacionar para hacer la busqueda con los comboBoxes son tres.

La primera tiene los registros donde contiene los Itemes que estan en los comboboxes.

La segunda tabla contiene Alertas que se relacionan con un campo de nombre
en la tabla primera y,

La tercera es la que contiene la informacion a desplegar en el DBGrid que esta relacionada con un campo de la segunda tabla. Para obtener la inf. en el DBGrid en base a la seleccion de los ComboBoxes es necesario relaccionar esas tablas.

Creo que en este caso se haria un join en la consulta o busqueda a hacer.

Necesito saber como hacer esa conexion, si alguien me pudiera orientar me serviria de mucha ayuda.
Responder Con Cita
  #2  
Antiguo 03-01-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Registrado
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 17
vtdeleon Va por buen camino
Saludos

Que base de datos utilizas?

Verifica si tu base de datos soporta containing.

La tabla que muestra el contenido en el DbGrid podría tener una consulta SQL fija y solo modificar sus condicionales
Código SQL [-]
Select campo1, campo2,...campoN
from tabla1
where campo1 containing :combox1 and campo2 containing :combox2.....

Última edición por vtdeleon fecha: 03-01-2007 a las 23:20:37.
Responder Con Cita
  #3  
Antiguo 04-01-2007
Kenlyr Kenlyr is offline
Miembro
 
Registrado: abr 2006
Posts: 13
Poder: 0
Kenlyr Va por buen camino
Gracias por tu atencion.

Una cosa todos los comboBoxes estan en un mismo campo de una the las tablas, lo que sucede con esto es que como ese campo continiene muchos registro con palabras combinadas una manera de que el usuario pueda combinarlos es tener varios comboBoxes para que el obtenga si existe lo que busca.

Yo podia repetir el mismo campo de la tabla para cada comboBox en el ejemplo que me hiciste?
Responder Con Cita
  #4  
Antiguo 04-01-2007
Kenlyr Kenlyr is offline
Miembro
 
Registrado: abr 2006
Posts: 13
Poder: 0
Kenlyr Va por buen camino
Otra cosa la BD que uso es Oracle
Responder Con Cita
  #5  
Antiguo 04-01-2007
Avatar de Maury Manosalva
Maury Manosalva Maury Manosalva is offline
Miembro
 
Registrado: ago 2005
Posts: 101
Poder: 12
Maury Manosalva Va por buen camino
Uso del DBLookUpComboBox

Mira este ejemplo se que quizas te pueda ayudarm, yo utilizo los mencionados en el titulo y me funcionan de esta manera esta es una consulta que hice justo para lo que tu necesitas, me cuenta como te va, aunque esto lo hice con MySQL pueda que te funcione para Oracle que dices es lo que tienes. Bueno me cuentas.

Maury Manosalva.
Bucaramanga, Colombia

Código Delphi [-]
 with DMReportes.QryConsRepEme do
     begin
     Close;
     SQL.Clear;
     ConsRepEme := 'Select RE.IdRepEmergencia "Nro. Reporte", TE.NomTipEmergencia "Tipo", RE.FechaRep "Fecha", RE.HoraRep "Hora", RE.NomReportante "Persona que Reporta", RE.Telefono "Teléfono",';
     ConsRepEme := ConsRepEme +' RE.RepSuceso "Reporte Suceso", E.NomEstacion "Estación Asignado", B.Nombarrio "Barrio", EE.NomEdoEmergencia "Estado Actual", CR.NomCanalRep "Canal de Reporte", RE.DirEmergencia "Dirección", RE.LogUsuario "Usuario" from tabrepemergencia RE,';
     ConsRepEme := ConsRepEme +' tabtipemergencia TE, tabestacion E, tabbarrios B, tabedoemergencia EE, tabcanalrep CR';
     ConsrepEme := ConsRepEme +' where RE.IdtipEmergencia = TE.IdTipEmergencia and RE.IdEstacion = E.IdEstacion and RE.IdBarrio = B.IdBarrio and RE.IdEdoEmergencia = EE.IdEdoEmergencia and RE.IdCanalReporte = CR.IdcanalReporte';

if (cmbTipEmergencia.KeyValue <> null) then
     ConsrepEme := ConsRepEme +' and TE.IdTipEmergencia = '+cmbTipEmergencia.KeyValue; // aca uso cada uso de los combos y va generando la consulta dependiendo de lo que tenga escogido
     if (cmbBarrio.KeyValue <> null) then
     ConsrepEme := ConsRepEme +' and B.IdBarrio = '+cmbBarrio.KeyValue;
     if (cmbCanReporte.KeyValue <> null) then
     ConsrepEme := ConsRepEme +' and CR.IdCanalReporte = '+cmbCanReporte.KeyValue;
     if (cmbEstacion.KeyValue <> null) then
     ConsrepEme := ConsRepEme +' and E.IdEstacion = '+cmbEstacion.KeyValue;
     if (cmbEstado.KeyValue <> null) then
     ConsrepEme := ConsRepEme +' and EE.IdEdoEmergencia = '+cmbEstado.KeyValue;
     ConsrepEme := ConsRepEme +' order By IdRepEmergencia';
     SQL.Add(ConsRepEme);
        open;
    grdRepEme.Refresh;
Responder Con Cita
  #6  
Antiguo 09-01-2007
Kenlyr Kenlyr is offline
Miembro
 
Registrado: abr 2006
Posts: 13
Poder: 0
Kenlyr Va por buen camino
Hola Maury, Gracias por el codigo, el que utilice en mi programa es bastante parecido al que me pasaste pues recibi una ayudita de alguien en mi oficina y al comparar con el tuyo es bastante parecido, Gracias Mil.

Y si me funciona .
Responder Con Cita
  #7  
Antiguo 09-01-2007
Avatar de Maury Manosalva
Maury Manosalva Maury Manosalva is offline
Miembro
 
Registrado: ago 2005
Posts: 101
Poder: 12
Maury Manosalva Va por buen camino
O; de Nada

Ok pasa espo estamos en estos foros para colaborar en lo que se pueda.
Saludos.

Maury Manosalva.
Bucaramanga, Colombia.
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
Algún componente Descendiente de dbGrid para enlazar a más de 1 tabla ???? AGAG4 Varios 2 06-11-2006 10:07:44
Problema al enlazar un dbgrid con dos querys diferentes MiGuEJeReZ Varios 7 20-06-2006 10:56:22
enlazar query, datasource, dbgrid Diegobdab Conexión con bases de datos 2 25-08-2005 10:12:24
LookupField DBGrid Varios Campos aram2r Conexión con bases de datos 3 18-03-2005 12:18:27


La franja horaria es GMT +2. Ahora son las 04:45:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi