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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
  #2  
Antiguo 01-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
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
  #3  
Antiguo 01-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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.

Cita:
El componente Sqlite3Dataset3 no trae la opcion de datasource a diferencia de utilzar componentes zeos
La verdad que no conozco ese componente y si no cuenta con la propiedad DataSource tal vez no sea posible aplicar lo que te sugerí.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 01-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.


La verdad que no conozco ese componente y si no cuenta con la propiedad DataSource tal vez no sea posible aplicar lo que te sugerí.

Saludos.
Bueno ahora utilizo esto con zeos

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;
Esto me tira el siguiente error "no such column Id"

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 18:11:39.
Responder Con Cita
  #5  
Antiguo 01-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 pedrolazarus.

En principio cambiaría:
Código Delphi [-]
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:
Código Delphi [-]
ZQuery1.SQL.Text:='SELECT * FROM mesas';
ZQuery1.Open;

ZQuery2.SQL.Text:='SELECT * FROM cliente where id_mesa=id';
ZQuery2.Open;
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 ....
Responder Con Cita
  #6  
Antiguo 01-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
Listo

Cita:
Empezado por ecfisa Ver Mensaje
Hola pedrolazarus.

En principio cambiaría:
Código Delphi [-]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:
Código Delphi [-]ZQuery1.SQL.Text:='SELECT * FROM mesas'; ZQuery1.Open; ZQuery2.SQL.Text:='SELECT * FROM cliente where id_mesa=id'; ZQuery2.Open;

El método ExcecSQL, ejecuta consultas que no devuelven un resultado.

Saludos.
Jajaja, antes de que respondieras estaba por postear la respuesta y esta era:
Cita:
Empezado por pedrolazarus
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.
Cita:
Empezado por ecfisa Ver Mensaje
estas exponiendo una situación en la cuál se aplicaría perfectamente una relación maestro/detalle
Responder Con Cita
  #7  
Antiguo 01-10-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
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.
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

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 22:02:25.


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