Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 02-04-2012
carlo_acp carlo_acp is offline
Miembro
 
Registrado: may 2006
Posts: 26
Poder: 0
carlo_acp Va por buen camino
Bueno amigos gracias por sus aportes, lo resolví de esta manera y lo comparto con uds:
1. En el form puse un temporizador de 2 segundos

2. he creado un tabla MovEsta con los campos
ESTA = 0(sin pedidos pendientes) 1(con pedidos pendientes)
HORAING tipo TIMESTAMP (pone la hora en la que se hizo el pedido)

3. en la tabla de Pedidos MovPediD un campo llamado HORAP tipo TIMESTAMP (con la hora del pedido)
4. he creado un TRIGGER en AfterPost de la Tabla de Pedidos
UPDATE movEsta set esta='1', horaIng='now' ;

5. un SP llamado NuevosPedidos

Código SQL [-]
CREATE OR ALTER PROCEDURE NUEVOS_PEDIDOS 
returns (
    lista1 varchar(1000),
    lista2 varchar(1000),
    lista3 varchar(1000))
as
declare variable esta varchar(1);
declare variable horaing timestamp;
declare variable horaact timestamp;
begin
    /* verificar si existe pedidos nuevos */
    SELECT esta, HoraIng, HoraAct from MovEsta
    WHERE esta='1'
    INTO :esta, :horaing,:HoraAct;

    /* si existen nuevos pedidos, devolver listado del pedido */
    if (esta='1') then
        begin
        SELECT list(p.cdpl , ','), list(d.nomb, ','), list(mesa, ',')
        FROM MovPediD P
        LEFT OUTER JOIN DbPlato D ON d.cdpl=P.cdpl
        WHERE P.horaP > :horaAct and P.horaP <=:horaIng
        into :Lista1, :lista2, :lista3 ;
        /* marcar MovEsta.esta=0 y horaAct =now para que ya no tenga pedidos pendientes */
        /* hasta la hora en que se esta actualiando a cocina */
        update MovEsta set esta='0', horaAct='now' ;
    end
 
end

El funcionamiento es de la siguiente manera: cuando realizan el pedido al momento de grabar en la tabla MovPediD, actualiza a MovEsta en el campo ESTA='1' y el HORAING='now'.
El timer en el form, hace la llamada al SP NuevosPedidos y se analiza lo que devuelve:

Código Delphi [-]
   if dat.spNuevos_Pedidos.Params[0].AsString<>'' then
      begin // agregar a cds nuevos pedidos
      CargarNuevosPedidos; /* separar las listas enviadas,  separadas por comas 
                           y crear los registros en el CDS que se muestra en el grid
   end;
Y este es el procedimiento;

Código Delphi [-]
procedure CargarNuevosPedidos;
var xNombre :  string;
begin
   // distribuyendo para cargarlo por registros a cds
   while pos(',', xNombre)>0 do
      begin
      Dat.cdsTempo.Append;
      dat.cdsTempoNOMBRE.AsString:= copy(xNombre, 1, pos(',', xNombre)-1);
      dat.cdsTempo.Post;
      xNombre:= trim(copy(xNombre, pos(',',xNombre)+1, 1000));
   end;
   Dat.cdsTempo.Append;
   dat.cdsTempoNOMBRE.AsString:= xnombre;
   dat.cdsTempo.Post;
end;

de esta forma me esta funcionando, estoy analizando otras opciones pero por lo pronto esta corriendo la aplicacion como se queria. Lo comparto aver si le sirve a alguien

Gracias Neftaly por la idea y a todos amigos,
Saludos
Responder Con Cita
 



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
No muestrar registros en el Grid Paulao Varios 5 24-03-2009 20:17:42
insertar registro en un grid que esta en otro grid @-Soft SQL 7 20-02-2008 17:22:42
insertar n registros en una tabla automaticamente zcatzz SQL 2 08-02-2007 03:42:04
Parlamento europeo desestima intervención comunicaciones Casimiro Noteví Noticias 0 28-09-2005 10:01:33
Registros en un Grid JorgeBec Varios 1 02-04-2005 09:15:49


La franja horaria es GMT +2. Ahora son las 22:55:48.


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