FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
ayuda con grids y bases de datos
Buenas, me pase por un foro el cual me ha ayudado mucho y da una idea de como hacer que varias gribs dependan de una en particular, el usuario que inicio el hilo dejo un ejemplo pero no dejo la contraseña depaso lo resolvio y no dijo como pero si dejo la idea, yo quisiera saber como hacer eso ya que me parece interesante.
CITO: Me pasaron una aplicación en delphi bueno no me pasaron me la mostraron y yo le saque varias instantaneas que es muy buena pero ya esta en desuso por el tiempo que tiene desde que se programo, la parte interesante de ella es la siguiente: Tiene tres grids la primera tiene data fija ( Todo con BD): Grid 1 mesa 1 - facturado - ocupado ...............no..........no mesa 2 - facturado - ocupado ...............no..........s1 mesa 3 - facturado - ocupado ...............no..........no Grid 2 cliente - cedula - rif grib 3 Productos -precio - total ============================================================= Estas grids por ejemplo si yo le diera clic a mesa 2 la grid2 mostraria el cliente que la ocupa la grid tres lo que compro o esta consumiendo. Yo lo que trate de hacer fue crear una tabla con los datos de la mesa mas un campo cedula y un campo factura en otra tabla factura mas un campo cedula y mesa entonces con un reloj cada 200ms hacia la cosulta de modo que mostrara los datos dependiendo de la mesa que seleccionara en ese momento. Para un cliente nuevo lo que hice fue crear un boton que parara el primer reloj pudiendo realizar el registro en la bd pero alli el detalle se encuentra en que la grid productos cada fila al uno darle clic desplega los productos que estan en el stock en la fila de al lado dependiendo del producto al uno darle clic se desplegan los precios y al uno darle flechita abajo se puede agregar otro producto automaticamente, la verdad me gusto mucho ese sistema casi lo llegue a copiar mas tiene muchos problemitas y ademas esos relojes creo que no es lo ideal. FIN CITA |
#2
|
||||
|
||||
¿Cuál es la pregunta/duda/problema?
¿Tiene algo que ver con lazarus, freepascal o kylix? Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
La pregunta
Cita:
El usuario de ese foro pregunto lo siguiente (lo que yo entendi) Tres dbgrib. Tres tablas en una db. El dice que la primera gribs tiene data fija como la cantidad de mesas, pero al seleccionar la mesa que si esta ocupada en la grib 2 y 3 aparecen los datos relacionados con la mesa (cliente que la ocupa y lo que compro) En resumen la dos de las grids dependen de la primera. Como se podria hacer eso? |
#4
|
||||
|
||||
Cada grid deberá estar pegada de un datasource, que a su vez deberá estar pegado a un dataset, donde cada dataset tendrá uno o varios eventos que descencadenen acciones en los demás, es de cir en el DataSet1.AfterRefresh, pones para que actualice los demás datasets con el valor que requieras pasar desde el DataSet1 a los demás, espero me haya hecho entender.
Saludos.
__________________
mas confundido que Garavito el día del Niño. |
#5
|
|||
|
|||
Cita:
Creo que si, voy a hacerlo y luego les comento |
#6
|
||||
|
||||
Hola.
Creo que estas exponiendo una situación en la cuál se aplicaría perfectamente una relación maestro/detalle. Veo dos posibilidades de organizarla, vos verás cuál te conviene para la situación. Caso 1: Código:
TABLA1 | TABLA2 | TABLA3 -----------+-----------+----------- ID | ID | ID DATO1 | DATO1 | DATO1 ... | ... | ... ... | TABLA1_ID | TABLA2_ID Consulta para TABLA2: Establece la propiedad DataSource de los componente que uses para las consultas:
Caso 2: Código:
TABLA1 | TABLA2 | TABLA3 -----------+-----------+----------- ID | ID | ID DATO1 | DATO1 | DATO1 ... | ... | ... ... | TABLA1_ID | TABLA1_ID Consulta para TABLA2:
Establece la propiedad DataSource de los componente que uses para las consultas:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
Estoy haciendolo dentro de un rato si es que me sale lo coloco aqui
|
#8
|
|||
|
|||
Cita:
Una pregunta, Si tengo varias Tablas en una BD y quiero mostrar los datos de cada una de ellas al mismo tiempo tengo que colocar como dices tú un datasource y un dataset para cada una verdad. |
#9
|
||||
|
||||
Por favor, no repitas preguntas en distintos sitios, he borrado el otro hilo donde has hecho esta misma pregunta.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
||||
|
||||
Cita:
Saludos.
__________________
mas confundido que Garavito el día del Niño. |
#11
|
|||
|
|||
Cita:
|
#12
|
|||
|
|||
lo hice
Les cuento que no supe hacer lo del refresh y creo que seria la mejor forma.
Si me salio como dijo el compañero ecfisa pero utilizando un reloj como dijo el compañero del otro foro. Lo que no me gusta y por lo que digo que es mejor el refresh es que la pantalla parpadea ya que el reloj esta haciendo la consulta cada 200ms, no se si eso afecta el rendimiento. |
#13
|
||||
|
||||
Cita:
De ese modo, cuando un registro de TABLA1 esté seleccionado, automáticamente serán seleccionados todos los que estén en relación con él en TABLA2 y lo mismo para TABLA3. Hablando visualmente, cuando selecciones un registro en el DBGRid1 (mesas) automáticamente se mostrarán los registros dependientes en DBGrid2(clientes) y DBGRid3(productos) que corresponden a la mesa seleccionada. Es decir que no veo la necesidad de usar un Timer, excepto claro, que desearas hacer una especie de demo que cada determinado tiempo seleccione una mesa aleatoriamente. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
|||
|
|||
Cita:
Código:
Cadena_SQL:='CREATE TABLE IF NOT EXISTS "main"."mesas" ("id" INTEGER PRIMARY KEY,"mesa" VARCHAR(30),"ocupado" VARCHAR(30));'; Sqlite3Dataset1.SQL:=Cadena_SQL; Sqlite3Dataset1.ExecSQL; Cadena_SQL:='CREATE TABLE IF NOT EXISTS "main"."cliente" ("nombre" VARCHAR(30), "rif" VARCHAR(30),"id_mesa" INTEGER,"id_factura" INTEGER);'; Sqlite3Dataset1.SQL:=Cadena_SQL; Sqlite3Dataset1.ExecSQL; Cadena_SQL:='CREATE TABLE IF NOT EXISTS "main"."factura" ("id" INTEGER PRIMARY KEY,"producto" VARCHAR(30),"precio" INTEGER,"rif_cliente" VARCHAR(30));'; Sqlite3Dataset1.SQL:=Cadena_SQL; Sqlite3Dataset1.ExecSQL; Sqlite3Dataset2 para cliente Sqlite3Dataset3 para factura Cada uno con su respectivo datasource. Ahora no entendi lo que dijiste acerca de relacionar los datasourse por lo que en el reloj hice Código:
Sqlite3Dataset2.close; Sqlite3Dataset2.SQL:='SELECT * FROM cliente where id_mesa="'+mesa+'";'; Sqlite3Dataset2.ExecSQL; Sqlite3Dataset2.Open; Sqlite3Dataset3.close; Sqlite3Dataset3.SQL:='SELECT * FROM factura where id="'+nfactura+'";'; Sqlite3Dataset3.ExecSQL; Sqlite3Dataset3.Open; Pero me gustaria entenderlo asi como tu lo dices ============================================================================== EDITO Y AGREGO El componente Sqlite3Dataset3 no trae la opcion de datasource a diferencia de utilzar componentes zeos Última edición por pedrolazarus fecha: 01-10-2012 a las 04:25:27. |
#15
|
||||
|
||||
Hola.
Cita:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#16
|
|||
|
|||
Cita:
coloque en el form un zconexion, tres query y tres source query1 datasource1 query2 datasource2 query3 datasource3 al primer query le coloque solo conexion=zconexion al segundo query igual conexion=zconexion y en datasourse=datasource1 al tercer query igual conexion=zconexion y en datasourse=datasource2 realizo la consulta en el form asi Siguiendo los mismos datos que deje mas arriba de como cree la base de datos Código:
ZQuery1.SQL.Text:='SELECT * FROM mesas'; ZQuery1.ExecSQL; ZQuery1.Open; ZQuery2.SQL.Text:='SELECT * FROM cliente where id_mesa=id'; ZQuery2.ExecSQL; ZQuery2.Open; Por lo tanto no inicia el programa EDITO Y AGREGO ======================================================= Me falto colocarle las comillas a id id_mesa="id" Me mustra la tabla mesas pero cuando seleciono otro registro por ejemplo mesa id=2 que esta ocupada y tiene cliente no hace nada o no se mustra nada en la grid EDITO Y AGREGO ======================================================= Tambien lo hice metiendo el codigo de seleccion en cada uno de los query y activando el query en el form igual muestra las mesas pero no muestra los datos en la grid 2 (la grid 2 tiene el datasourse2) Última edición por pedrolazarus fecha: 01-10-2012 a las 19:11:39. |
#17
|
||||
|
||||
Hola pedrolazarus.
En principio cambiaría: Por: El método ExcecSQL, ejecuta consultas que no devuelven un resultado como CREATE TABLE, INSERT, DELETE y UPDATE. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#18
|
|||
|
|||
Me respondo a mi mismo XD, gracias ecfisa, fuiste de mucha ayuda, con los componentes de zeos salio a la primera como dijiste las relaciones sin utilizar reloj.
|
#19
|
|||
|
|||
Listo
Cita:
Cita:
|
#20
|
|||
|
|||
Disculpa una duda que tengo, sabes que cuando por ejemplo(tomando en cuanta la forma en que programe la bd) entonces al query3 le pongo el dsorce2 pero cuando selecciono una mesa vasia correctamente no aparece cliente pero aparecen todos los productos cuando no deberia aparecer nada, a que se ´podria deber esto?
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda para un novato en Bases de Datos | Wolf1984 | Conexión con bases de datos | 4 | 17-02-2011 20:07:28 |
Ayuda con conexion a bases de datos desde linea de comandos | k_bron | Conexión con bases de datos | 3 | 31-08-2006 22:23:31 |
Ayuda en programa con grids y guardar valores | onlytk | Varios | 3 | 11-11-2005 21:08:28 |
Ayuda con las bases de datos!!!! | Rafe | Conexión con bases de datos | 2 | 07-07-2005 19:30:50 |
Ayuda con Bases de Datos | yocmen | Tablas planas | 3 | 20-06-2005 03:02:50 |
|