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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-04-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 22
silviodp Va por buen camino
Combinar tablas para un Reporte

Hola, tengo una tabla TblMueble la cual tiene un campo Rubro en el que guardo los valores del campo Código de la tabla TblRubro, esta relación la hago mediante un DBLookupComboBox, osea que en el DBLookCombo muestro la descripcion del Rubro pero en la Tabla TblMueble guardo el Código.
El problema está cuando hago el reporte de la tabla TblMueble ya que como es obvio me muestra en el campo Rubro sólo números (Código), y yo lo que quiero es que en el reporte me muestre la descripción de dicho Rubro para que el mismo sea más claro, y para esto debería combinar las Tablas de tal forma que haga esto.
Alguien me podría dar una idea o si saben como se logra esto, es decir combinar las tablas.
Gracias, saludos.

Silvio.-
Responder Con Cita
  #2  
Antiguo 17-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola Silviodp. No indicas el motor de datos con el que trabajas... aunque supongo que esto debiera correr en cualquiera.

Lo que tenes que hacer es un join (o encuentro) de las tablas.

Algo como
Código:
  Select mueble.codigo, mueble.nombre, rubro.descripcion desc_rubro
    from mueble, rubro
   where rubro.codigo = mueble.rubro;
Te recomiendo que busques manuales/tutoriales y un buen libro de SQL.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 17-04-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
No es que lo quiera corregir a jachguate, pero me parece mas legible algo del estilo:
Código:
SELECT 
   MBL.Campo_Cualquiera,
   MBL.CodRubro,
   RBR.Descripcion
FROM TblMueble MBL
   LEFT JOIN TblRubro RBR ON RBR.Codigo = MBL.CodRubro
También creo que la pregunta está un poco incompleta.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #4  
Antiguo 18-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
bueno... el que la consulta sea válida o no, dependerá del motor de base de datos, ya que esta sintaxis para los joins hay algunos que no se atreven a implementarla... (o se han atrevido ya en versiones muy recientes, por ejemplo Oracle).

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 18-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Sólo aclarar que lo que ha puesto Juan Antonio y Gydba no es exactamente lo mismo. Para que fuera exactamente lo mismo, en lugar de un LEFT JOIN se tendría que haber puesto un INNER JOIN
Responder Con Cita
  #6  
Antiguo 18-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

cierto... cierto... no me habia dado cuenta, asumí que se trataba de un inner join.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 19-04-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Si, estoy de acuerdo con catedill que no son lo mismo.

Por otro lado me llamó la atención eso de: "esta sintaxis para los joins hay algunos que no se atreven a implementarla" de jachguate, comprendo bien que algunos motores tengan ciertas limitaciones pero que algunos no se atrevan a implementarlo me lleva a preguntar ¿Por qué? ¿Qué riesgos tiene el utilizar joins para este tipo de consultas?
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #8  
Antiguo 19-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por Gydba
Por otro lado me llamó la atención eso de: "esta sintaxis para los joins hay algunos que no se atreven a implementarla" de jachguate
Es una expresión sarcástica que hace referecia a las limitaciones de algunos motores, y no a algun riesgo en su uso o implementación.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 19-04-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
, como diría Homero ando un poco "lelo" el día de hoy.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #10  
Antiguo 20-04-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 22
silviodp Va por buen camino
Combinar tablas para un Reporte

Sí entiendo lo que tengo que hacer, pero ese código tengo que escribirlo dentro de la propiedad SQL de la Query?, y luego ejecutarlo desde mi programa?
Gracias.

Silvio.-
Responder Con Cita
  #11  
Antiguo 20-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola Silvio. Te recomiendo leer un libro sobre delphi (la mayoría incluyen un capítulo o dos para diseño de reportes). Podes iniciar con La Cara oculta de delphi, que podes descargar desde la web de su autor http://www.marteens.com.

A grandes razgos, en un Tquery meté la sentencia, agregas los campos. Crea un Nuevo QuickReport, asocialo al query mediante su propiedad dataset. Luego pones una banda de título, una de header y una de detalle (simplemente haciendo doble clic sobre la parte blanca del reporte, añadí estas bandas). En la banda detalle, añadí tantos TqrDBText como sea necesario, y asocia cada uno al DataSet (query) y al campo que queres que imprima.

Si abris el query en tiempo de diseño, podes previsualizar el reporte usando el menú contextual de quick report.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #12  
Antiguo 20-04-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 22
silviodp Va por buen camino
Combinar tablas para un Reporte

Está bien en realidad esa no era mi pregunta, es decir como se crea un QReport, eso creo que lo sé hacer, el problema era la combinación de tablas. Más precisamente era si una vez que escribí las sentencias SQL donde las ejecuto, o sea tengo que ponerlas en la propidad SQL del Query????????
A veces las preguntas no son completas pero tampoco a veces lo son las respuestas!!!
Gracias, saludos.-

Silvio.-
Responder Con Cita
  #13  
Antiguo 20-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por silviodp
...o sea tengo que ponerlas en la propidad SQL del Query????????
Ya sea en diseño o en ejecución, la respuesta es sí

Cita:
Empezado por silviodp
A veces las preguntas no son completas pero tampoco a veces lo son las respuestas!!!
La respuestas (al menos la mayoría de las que yo doy) suelen ser orientativas, es decir, te encaminamos a la solución pero sin dártela toda. Eso no tendría gracia y no se aprendería nada
Responder Con Cita
  #14  
Antiguo 20-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por silviodp
A veces las preguntas no son completas pero tampoco a veces lo son las respuestas!!!
Hola Silvio.

Sin ánimo de entrar en polémica... pero hay cosas que son bastante obvias (como el que una sentencia SQL debe ir en la propiedad SQL). Luego de tu segunda pregunta, yo supuse que no sabias nada y, en buen plan, traté de orientarte un poco mas. Si ya lo tenias mas claro, quizas te hubiera costado el mismo esfuerzo que hacer esa pregunta aqui, pegar el código en la propiedad SQL y ver que sucedia... no te parece?

Creo que el objetivo final de los foros, o al menos el mio en particular, es lograr que la gente investigue un poco mas por su cuenta, se atreva a probar, y ya que las cosas no le salen, que venga aqui a plantear sus dudas..... de esa forma todos nos ayudamos un poco. Pero si no es asi, muchas veces da la impresión que se trabaja por los demás... y la primera opción es preguntar en el club (muchas veces incluso sin utilizar la busqueda en los históricos), cuando debiera ser despues de haber investigado.

Cada caso es distinto... pero estamos hablando de actitud. No echo todo este rollo aqui por vos... pero aprovecho la oportunidad para que quienes lo vean se cuestionen un poco y juzguen si tengo o no tengo razón.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #15  
Antiguo 20-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por silviodp
A veces las preguntas no son completas pero tampoco a veces lo son las respuestas!!!
Ya algo te han dicho y yo agrego: éste no es un servicio técnico por el que tú pagas y nosotros respondemos. Por lo mismo, quienes deseamos preguntar algo estamos obligados, como mínimo, a ser claros en nuestras preguntas pero nadie está obligado a darnos una respuesta completa.

// Saludos
Responder Con Cita
  #16  
Antiguo 20-04-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Me voy a permitir introducir una fábula de Samaniego.

Simplemente es a modo de ejemplo, que nadie se dé por aludido, es a modo de reflexión.

Cita:
Dióle cebada al mulo el buen cibulo y una coz como un templo lárgole el mulo, las almas innobles por el bien que reciben devuelven coces
Cuando un forista se lee una pregunta a veces incompleta, otras vaga, cuando no incoherente, paratáctica o incluso "sopaletrosa", y además se toma la molestia de contestar, aún si su respuesta fuere errada, cuando menos se merece el agradecimiento por los servicios altruistas prestados no solo a quien pregunta sino al resto de foristas que pudieren estar siguiendo el hilo.

Un Saludo a todos.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #17  
Antiguo 21-04-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 22
silviodp Va por buen camino
Combinar tablas para un Reporte

Creo que a muchos no les ha gustado mi respuesta anterior, por eso pido disculpas. Pero creo que siempre agradecí la ayudan que me dan en el foro, aunque sinceramente muchas veces no era lo que yo necesitaba.
Lo que quiero que me entiendan es que nadie pregunta porque sabe, si pregunto algo es porque realmente no lo sé, y lo necesito, tampoco nunca quise que nadie trabaje por mí o para mí.
Nuevamente pido disculpas, y gracias.

Silvio.-
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


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


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