FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Usar varias tablas
Tengo las siguientes tablas:
Tabla: GPO_CARR Campo Tipo de dato Longitud Descripción Id_Gpo_Carr Texto 5 (PK) Identificación del grupo de la carrera: 3ATIC Id_Carr Texto 3 (FK) Identificación de la carrera: TIC Grado Texto 1 Grupo Texto 1 Tabla: ALUMNOS Campo Tipo de dato Longitud Descripción Matricula Numérico 8 (PK) Matricula del alumno: 15973624 Nombre Texto 30 Ap_Mat Texto 20 Ap_Pat Texto 20 Id_Gpo_Carr Texto 5 (FK) Identificación del grupo de la carrera: 3ATIC Id_Gpo_Ing Texto 8 (FK) Identificación del grupo de inglés: 3BASTIC1 Tabla: CALIFICACIONES Campo Tipo de dato Longitud Descripción Periodo Texto 9 (PK) Periodo del cuatrimestre: ENE-ABR06 Matricula Numérico 8 (FK) Matricula del alumno: 15973624 Parcial1 Numérico 2 Evaluación parcial Parcial2 Numérico 2 Parcial3 Numérico 2 Promedio Calculado Ordinario Numérico 2 Final Numérico 2 Deseo hacer lo siguiente: Pedir en un DBLookupComboBox el grupo de la carrera (Id_Gpo_Carr) y que me aparezca en un DBGrid la matricula del alumno, nombre y los campos de la tabla calificaciones que me permitan capturar los parciales, el ordinario y el final. La pregunta es: ¿cómo le hago para usar las 3 tablas? Como pueden ver, las 3 se relacionan. No lo puedo hacer con SQL porque sería sólo consulta y yo deseo que me permita capturar calificaciones. Tampoco lo hago con Master Detail porque sólo se hace con 2 tablas. ¡¿Cómo le hago?!!!!!! A lo mejor y si se puede con algo de lo anterior, pero no se como, agradezco de antemano su ayuda. Gracias |
#2
|
||||
|
||||
Hola
La verdad no le veo el inconveniente de usar una sentencia sql para esto. Por otro lado no se porque el uso de DBLookupComboBox cuando se puede hacer con un DBComboBox y sql. o incluso un ComboBox y pasarle los parametros del sql, no se, creo que se complican mucho, es una simple opinion. Saludos |
#3
|
|||
|
|||
Hola a todos
Y digo yo, que tambien uso el DBLookupcombobox, como puedo pararle los parametros sql a un combobox o dbcombobox, si lo que yo le tendria que pasar (a mi modo de ver, que parece pequeño) son los items para la lista???? Ta luego... |
#4
|
||||
|
||||
Quizás añadiendo un campo calculado al Grid sea la solución. En este hilo tienes 2 soluciones.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
Hola
La verdad, para mi, muy personalmente, sigue siendo una consulta de dos tablas, Tabla: ALUMNOS y Tabla: CALIFICACIONES, porque, pues porque en la tabla Tabla: GPO_CARR lo que se encuentran son las carreras que ademas estan ligadas a la Tabla: ALUMNOS por el (Id_Gpo_Carr) no la necesito para nada. La pregunta que se hizo fue: Cita:
Por otro lado se dice: Cita:
Insisto muy personalmente, os complicais mas de la cuenta. En la simpleza esta la velleza. Saludos |
#6
|
|||
|
|||
Caral agradezco tus comentarios, aunque siento que me estás regañando por algunas cosas que me dices, pero soy novata en Delphi y eso de que se puede modificar un valor en una consulta de SQL ya lo quise hacer y no pude ingresar valores en el dbgrid después de realizar la consulta, a lo mejor hice algo mal.
Y en cuanto a usar solamente las dos tablas (Alumnos y Calificaciones) también ya lo intenté, pero resulta que al seleccionar el grupo en el DBLookupComboBox solamente me aparece en el dbgrid el registro del alumno que está en ese grupo y yo quiero que me aparezca la lista de los alumnos que están en ese grupo, para capturar calificaciones por grupo. Agradezco de nuevo tu ayuda, no creas que sólo me estoy ateniendo a la ayuda de los foros, ya le he buscado por otras partes. |
#7
|
||||
|
||||
Hola CONY
De nunguna manera te regaño, es mas, novato yo, es solo que aveces veo en el foro cosas que se que se pueden hacer y me desespero por tratar de hacer entender como las haria yo, que no es necesariamente mejor que tu, tal vez diferente, no te desanimes y sigue, que si se puede. Para entender las cosas un poco mejor es bueno poner codigo por aca y decir, bueno por este lado asi y por el otro de este modo. En el foro hay verdaderos Maestros en esto, y se te, van a ayudar. Gracias por hacerme medir mis palabras, tratare de ser mas cauteloso con mi vocabulario. Saludos |
#8
|
|||
|
|||
Que base de datos y que componentes de acceso estás usando?
Ahora, según te entendí, quieres poder escoger un grupo y con ese grupo mostrar los alumnos que lo integran y capturar sus calificaciones... todo en un DBGrid... Sin saber exactamente lo que te pregunto al principio (base de datos y componentes de acceso), podrías tener algo así: Un query con el cual vas a obtener los grupos (select * from GPO_CARR) el cual vas a usar con el TDBLookupComboBox. Lo siguiente sería una consulta que te devuelva los alumnos por grupo, algo como: este query tendría como master el query de GPO_CARR, así cuando cambies de grupo, verás los alumnos que lo integran. Como lograr esto? Pues el query ALUMNOS en su propiedad MasterDataSource seleccionas el TDataSource que contiene el query GPO_CARR. Ahora, lo anterior solo te devolvería los alumnos por grupo, pero no estás viendo las calificaciones por alumno, esto lo puedes lograr de forma similar al query ALUMNOS: De esta manera, puedes tener una relación Master-Detail en 3 niveles: GPO_CARR - ALUMNOS - CALIFICACIONES... Sobre como poder editar estos datos, necesitaría que contestaras las preguntas que te hice... Saludos... |
#9
|
||||
|
||||
Hola y perdonen que insista en esto pero sigo sin ver la necesidad de usar las tres tablas por lo siguiente:
La primera solo almacena los grupos. La segunda almacena los alumnos con sus grupos La tercera almacena las materias ligadas al alumno. Pero si insisten en usar las tres tablas pues asi: Usando un simple Combobox y un dbgrid: Este Query trabaja con el combobox que trae Id_Gpo_Carr de la famosa primera tabla y lo inserta en el: QTemp es el nombre que le di al query. CBALUMNOS es el nombre que le di al combobox. En otro query ligado al dbgrid se pone esto: QTemp2 es el nombre que le di al segundo query. Este vera lo que este en el combobox que se llama CBALUMNOS y filtrara los alumnos que cumplan con ese requisito. Creo que se puede con un combobox y con sql como veras CONY es cuestion de un poco de paciencia. Espero te sirva Saludos |
#10
|
|||
|
|||
Su insistencia en las tres tablas, es que las primeras dos son, vamos a decirlo así, de referencia... la que en realidad va a editar es la de CALIFICACIONES, pero para esto debe saber cual es el grupo y cuales son los alumnos...
Saludos... |
#11
|
||||
|
||||
Estoy de acuerdo Maeyanes pero si te fijas en los campos de las tablas en su primera pregunta veras que el campo Id_Gpo_Carr esta en la tabla alumnos tambien, esto quiere decir que hay un enlace entre estas tablas por este campo en particular, estaras de acuerdo con migo que es muy dificil interpretar dudas con pocos datos, casualmente caben las dudas, al ver esto por eso opine lo dicho (tres tablas para que??).
Saludos Maestro |
#12
|
|||
|
|||
Te repito, las 3 tablas son necesarias... si tienes una relación así:
Código:
[GPO_CARR] <-- Id_Gpo_Carr --> [ALUMNOS] <-- Matricula --> [CALIFICACIONES] Ahora, viendo tu ejemplo, el join que propones no es posible, ya que la tabla CALIFICACIONES no tiene el campo Id_Gpo_Carr. La sintaxis de un join es:
Si bien, tu intención es buena, esa consulta no puede ser editable, que es lo que busca CONY... Analizalo bien y verás... Saludos... |
#13
|
||||
|
||||
Hola Maeyanes
La prove tal cual antes de darsela, la diferencia esta en los nombres de las tablas ya que use tres tablas mias, incluso lo prove con dos como dije, ligadas, nada mas cambie los nombres para que CONY se ubicara, la prove en una pequeña aplicacion y ya, pero de que sirve, sirve. La verdad no creo que mi ordenador sea diferente de otros, ahunque a este le tengo advertido, si no funciona lo cambio. Saludos Maestro, que ya ves me as ayudado a aprender. Saludos |
#14
|
|||
|
|||
Sirve bien? Pudiste editar el resultado de la consulta join?
Ahora, puede que el error que tuviste sea al momento de cambiar los nombres de tus tablas a los que usa CONY... Saludos... |
#15
|
||||
|
||||
Siempre cave la duda revise en mi programa, el de verdad a ver si tengo algo parecido y efectivamente hay similitudes.
De todos modos concuerdo contigo que tal vez al poner los nombres me alla perdido en algo. Verdaderamente agradezco tus comentarios, ya que creo que asi la interesada CONY podra tener un campo mas amplio de apreciacion y que por suerte hay en este foro Maestros como tu que nos dan unas buenas lecciones, aqui sigo aprendiendo. Saludos y garcias Maestro Por cierto que paso con aladelta ?, Hizo un comentario y se fue, que paso!!!??? Saludos |
#16
|
|||
|
|||
Hola,
pues me fui a trabajar.... y esta noche he visto todo el hilo de nuevo y he probado los comentarios de Roman y otros para hacer un combobox dentro de un grid y me gusta la tarea... yo no intente pero no pude con ellos, por eso me decante por el dblookupcombobox fuera del grid, pero hare pruebas y vere la posibilidad de cambiarlo dentro de las aplicaciones que tengo,.... Y gracias por acordarte... |
#17
|
||||
|
||||
Hola
Recuerda que cada componente sirve para cierta aplicacion, si no te fabricas uno , pero eso ya es para maestros como Roman, Dec, Seoane, maeyanes, lepe, bueno y muchos, que no te cases con el dblookupcombobox eso es lo que digo , la jente se acostumbra a usar algo y desconoce otras cosas, talvez mas faciles, podria ser. Bueno Aladelta bienvenido a bordo denuevo. Saludos |
#18
|
|||
|
|||
Hola a todos,
La verdad, les agradezco a todos sin excepción su apoyo, estoy probando las opciones que me dieron, no hay como probarlas para ver cual funciona. En cuanto tenga un resultado se los haré saber. Gracias!!! |
#19
|
|||
|
|||
Maeyanes, con respecto a la pregunta que me hiciste sobre la base de datos, estoy utilizando PARADOX y los componentes son DataSource y DBTable...
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Apertura de Varias Tablas | luxus | Conexión con bases de datos | 5 | 08-09-2005 13:37:34 |
Trabajar con varias tablas | luxus | Conexión con bases de datos | 3 | 22-08-2005 18:32:15 |
usar una tabla o varias auxiliares???leer y opinar por favor | ercrizeporta | Conexión con bases de datos | 3 | 14-07-2005 14:55:20 |
Insertar en varias tablas... | Duc | SQL | 5 | 01-09-2004 06:07:28 |
IBDataSet con varias tablas | Angel | Firebird e Interbase | 8 | 26-01-2004 14:30:03 |
|