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
SELECT esta, HoraIng, HoraAct from MovEsta
WHERE esta='1'
INTO :esta, :horaing,:HoraAct;
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 ;
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 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
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