Ver Mensaje Individual
  #3  
Antiguo 11-06-2008
fcobanda fcobanda is offline
Miembro
 
Registrado: jun 2003
Ubicación: Saltillo, Coah. Mexico
Posts: 19
Reputación: 0
fcobanda Va por buen camino
Gracias duilioisola.

- Te comento que los eventos registrados en la aplicacion son 9
- el Stored procedure es muy simple y corto ya que solo actualiza una tabla que se podria decir que es la principal en este modulo de la aplicacion, ya que se relaciona con varias tablas, y el stored hace varios select's a las tablas que van a actualizar a la principal, y solo genera un evento.
- al estar haciendo esta prueba se hace solo con un equipo usando la aplicacion y la base de datos.
- he notado que al hacer el primer refresh de los datos lo hace de inmediato, pero despues del segundo y el tercero se tarda de 5 a 10 segundos.

CODIGO PARA LLAMAR EL PROCEDIMIENTO

With DmDatos.SPCotizar do
begin
params[0].Value := DmDatos.PPtosCVE_PPTO.Value;
params[1].Value := DmDatos.Oper_PptoCVE_OPER.Value;
params[2].Value := RGTipoDano.ItemIndex;
params[3].Value := DmDatos.PPtosCVE_TAB.Value;
params[4].Value := 1;
params[5].Value := 1;
ExecProc;
end;

CODIGO EN EL EVENTO ONEVENTALERT(solo te envio el de la tabla en mencion)

if EventName = 'PPTOS_DET' then
begin
Datos := DmDatos.Pptos_DetDs.DataSet;
RecargaSet(Datos);
Datos := DmDatos.Oper_PptoDs.DataSet;
end;
RecargaSet(Datos);

CUERPO DEL STORED PROCEDURE (aclarando que es solo de prueba, ya que faltan algunos calculos que iran en el insert)

BEGIN
/* Procedure body */
Importe_Hora = Null;
hrs_cotizar = 0;
Select Importe_Hora From Tabulador_Det
Where Cve_Tab = :Tabula and Segmento = :Segmento
And Clave_Clase = :Cve_Clase
Into :Importe_Hora;
if (Importe_Hora is null) then
begin
Exception sin_Tabulador;
suspend;
end
Select Cve_Actividad, Descripcion, Requerido,
Horas_Dano_Chico, Horas_Dano_Medio, Horas_Dano_Grande
From Operaciones
Where Cve_Oper = per
Into :Cve_ACtividad, escripcion, :Requerido, Hrs_Chico, Hrs_Medio,
Hrs_Grande;
if (Tipo_Dano = 0) then
Hrs_Cotizar = Hrs_Chico;
if (Tipo_Dano = 1) then
Hrs_Cotizar = Hrs_Medio;
if (Tipo_Dano = 2) then
Hrs_Cotizar = Hrs_Grande;
Select Descripcion From Actividades
Where Cve_Actividad = :Cve_Actividad
Into Actividad;

/* Agrega al Detalle del Presupuesto */
Insert Into Pptos_Det
(Cve_PPto, Secuencia, Cve_Oper, Tipo_Dano, Costo,
Descripcion, CVe_Mo_Ref, CostoRef)
Values
(:PPto, 0, :Oper, :Tipo_Dano, 111, :Actividad || ' ' || escripcion,
1,222);
SUSPEND;

END

las constantes en los valores del insert son calculos que se haran despues de saber que esta pasando.

Notan algo raro en esto?
Gracias
Responder Con Cita