Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Dbgrid y busqueda (https://www.clubdelphi.com/foros/showthread.php?t=81398)

giulichajari 10-11-2012 18:10:37

Dbgrid y busqueda
 
Bueno la pregunta ahora es si se podria conectar un dbgrid a una busqueda:
Al insertar el nombre y apellido de un cliente, que aparezcan las cuotas que pago solo ese cliente.
Para lo mismo ya tengo una base de datos normalizada, con una tabla de clientes que tiene como clave principal el DNI, y en otra los meses, en una tercera tabla el cobro a un DNI de un mes.

Mi idea es que muestre los meses que pago para cobrar el siguiente mes.
El caso es que buscar por DNI es muy engorroso. Ademas tengo un campo estado que es pago o debe
En resumen necesito saber:

¿Se puede buscar por Nombre y Apellido teniendo DNI como clave principal?
¿Como modifico el estado de la tabla meses al insertar un pago(tengo un DBLookupcombobox que tiene los meses)?
¿Como muestro los meses cuyo estado es pago en el dBGrid?

O bien si me aconsejan otros componentes se los agradezco. Gracias..

Casimiro Notevi 10-11-2012 19:46:38

Ufffffffff....... lo que te aconsejo es un libro, de verdad. Este, es lo mejor de lo mejor... y gratis, regalo del autor.

giulichajari 10-11-2012 22:55:16

Gracias por responder
 
Si habia pensado en un libro, pero igual utilizo Borland c++.

Casimiro Notevi 10-11-2012 23:22:38

El mismo libro está también para ese lenguaje, también gratis.

roman 12-11-2012 17:16:25

Cita:

Empezado por giulichajari (Mensaje 449152)
Bueno la pregunta ahora es si se podria conectar un dbgrid a una busqueda:
Al insertar el nombre y apellido de un cliente, que aparezcan las cuotas que pago solo ese cliente.
Para lo mismo ya tengo una base de datos normalizada, con una tabla de clientes que tiene como clave principal el DNI, y en otra los meses, en una tercera tabla el cobro a un DNI de un mes.

Mi idea es que muestre los meses que pago para cobrar el siguiente mes.
El caso es que buscar por DNI es muy engorroso. Ademas tengo un campo estado que es pago o debe
En resumen necesito saber:

¿Se puede buscar por Nombre y Apellido teniendo DNI como clave principal?
¿Como modifico el estado de la tabla meses al insertar un pago(tengo un DBLookupcombobox que tiene los meses)?
¿Como muestro los meses cuyo estado es pago en el dBGrid?

O bien si me aconsejan otros componentes se los agradezco. Gracias..

¿Por qué dices que la búsqueda por DNI es engorrosa? ¿Cómo la estás haciendo? En principio, no tendría por que ser difícil. Eso sí, yo no usaría el DNI como llave primaria. Sí cómo índice sin duplicados pero no como llave primaria.

Sería bueno que pusieras un poco más de detalle en cuanto a cuáles son los campos de cada una de tus tablas.

// Saludos

Delphius 13-11-2012 04:35:48

Cita:

Empezado por roman (Mensaje 449238)
Eso sí, yo no usaría el DNI como llave primaria. Sí cómo índice sin duplicados pero no como llave primaria.

¿Porqué no?

Mientras el campo analizado tenga la caraterística de clave candidata es legal el que se lo elija como clave primaria.
Si el campo puede garantizar unicidad ya es un buen criterio para aceptarlo como PK.
Es sabido que la misma teoría de base de datos sugiere la aparición de claves artificiales. El DNI es justamente una de éstas, ergo: es válido que sea PK. Tres motivos, 3 puntos que se analizan para definir las PK. Todos coinciden: el DNI puede tranquilamente ser una PK. Después de todo, en teoría, no existen dos personas con el mismo DNI, es una clave artificial (inventado... porque a dudo que alguien llame a Juan Pepe de la Cruz Montezco Planes como 287541296). Aunque hoy en día el robo de identidad anda creciendo :p

Saludos,

roman 13-11-2012 15:36:04

Cita:

Empezado por Delphius (Mensaje 449311)
¿Porqué no?

Porque siendo un identificador público queda sujeto a error humano al momento de capturarlo en un sistema y resulta más fácil y seguro corregir el error en un sólo lugar que en todos los lugares donde la llave aparezca como llave foránea.

// Saludos


La franja horaria es GMT +2. Ahora son las 23:09:44.

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