Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿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
Responder Con Cita
  #2  
Antiguo 29-09-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 14
pedrolazarus Va por buen camino
La pregunta

Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Cuál es la pregunta/duda/problema?
¿Tiene algo que ver con lazarus, freepascal o kylix?

Bienvenido a clubdelphi, ¿ya leiste nuestra guia de estilo, gracias por tu colaboración
(LAZARUS) Pues la pregunta seria como hacer para que varias grib dependan de una asi como deje el comentario arriba.

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?
Responder Con Cita
  #3  
Antiguo 29-09-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 20
mightydragonlor Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 29-09-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 14
pedrolazarus Va por buen camino
Cita:
Empezado por mightydragonlor Ver Mensaje
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.

Creo que si, voy a hacerlo y luego les comento
Responder Con Cita
  #5  
Antiguo 29-09-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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 TABLA3:
Código SQL [-]
SELECT * FROM TABLA3 WHERE TABLA2_ID = :ID
Consulta para TABLA2:
Código SQL [-]
SELECT * FROM TABLA2 WHERE TABLA1_ID = :ID
Establece la propiedad DataSource de los componente que uses para las consultas:
Código Delphi [-]
  Query3.DataSource = DataSource2;
  Query2.DataSource = DataSource1;


Caso 2:
Código:
TABLA1     | TABLA2    | TABLA3  
-----------+-----------+-----------
ID         | ID        | ID 
DATO1      | DATO1     | DATO1
...        | ...       | ...
...        | TABLA1_ID | TABLA1_ID
Consulta para TABLA3:
Código SQL [-]
SELECT * FROM TABLA3 WHERE TABLA1_ID = :ID
Consulta para TABLA2:
Código SQL [-]
SELECT * FROM TABLA2 WHERE TABLA1_ID = :ID

Establece la propiedad DataSource de los componente que uses para las consultas:
Código Delphi [-]
  Query3.DataSource = DataSource1;
  Query2.DataSource = DataSource1;


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 30-09-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 14
pedrolazarus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
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.

Saludos.
Estoy haciendolo dentro de un rato si es que me sale lo coloco aqui
Responder Con Cita
  #7  
Antiguo 01-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 14
pedrolazarus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
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 TABLA3:
Código SQL SELECT * FROM TABLA3 WHERE TABLA2_ID = :ID

Consulta para TABLA2:
Código SQL SELECT * FROM TABLA2 WHERE TABLA1_ID = :ID

Establece la propiedad DataSource de los componente que uses para las consultas:
Código Delphi Query3.DataSource = DataSource2; Query2.DataSource = DataSource1;

Saludos.
En cada uno de esos casos creo, se necesitaria un reloj que haga la consulta o no? Yo estoy tratando con varios dataset como dijo el otro compañero y utilizando el evento afterrefresh que no se utilizar pero estoy investigando XD
Responder Con Cita
  #8  
Antiguo 01-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 14
pedrolazarus Va por buen camino
Thumbs up 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.
Responder Con Cita
  #9  
Antiguo 01-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
En cada uno de esos casos creo, se necesitaria un reloj que haga la consulta o no? Yo estoy tratando con varios dataset como dijo el otro compañero y utilizando el evento afterrefresh que no se utilizar pero estoy investigando XD
Hola pedrolazarus.

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 ....
Responder Con Cita
  #10  
Antiguo 01-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 14
pedrolazarus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola pedrolazarus.

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.
Esto hice:

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;
Sqlite3Dataset1 para la tabla mesa

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;
donde mesa y nfactura son variables que toman un valor respectivo

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 03:25:27.
Responder Con Cita
  #11  
Antiguo 02-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 14
pedrolazarus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
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.
Saludos.
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?
Responder Con Cita
  #12  
Antiguo 01-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 14
pedrolazarus Va por buen camino
Cita:
Empezado por mightydragonlor Ver Mensaje
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.

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.
Responder Con Cita
  #13  
Antiguo 01-10-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Por favor, no repitas preguntas en distintos sitios, he borrado el otro hilo donde has hecho esta misma pregunta.
Responder Con Cita
  #14  
Antiguo 01-10-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 20
mightydragonlor Va por buen camino
Cita:
Empezado por pedrolazarus Ver Mensaje
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.
Si, efectivamente.

Saludos.
__________________
mas confundido que Garavito el día del Niño.
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
Ayuda para un novato en Bases de Datos Wolf1984 Conexión con bases de datos 4 17-02-2011 19: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 21:23:31
Ayuda en programa con grids y guardar valores onlytk Varios 3 11-11-2005 20:08:28
Ayuda con las bases de datos!!!! Rafe Conexión con bases de datos 2 07-07-2005 18:30:50
Ayuda con Bases de Datos yocmen Tablas planas 3 20-06-2005 02:02:50


La franja horaria es GMT +2. Ahora son las 01:25:57.


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