if Trim(Evento) <> '@' then begin DMmonitoreo.ZQuery1.Close; DMmonitoreo.ZQuery1.sql.Clear; DMmonitoreo.ZQuery1.SQL.Add('insert into central (csid,buffer,formato,evento,detalle,fechan )'); DMmonitoreo.ZQuery1.SQL.add(' values (:pcsid,:pbuffer,:pformato,:pevento,:Pdetalle,:pfechan)'); DMmonitoreo.zquery1.parambyname('pcsid').asstring :=trim(csid); DMmonitoreo.zquery1.parambyname('Pbuffer').asstring :=buffer; DMmonitoreo.zquery1.parambyname('pformato').asstring :=formato; DMmonitoreo.zquery1.parambyname('Pevento').asstring :=trim(evento); DMmonitoreo.zquery1.parambyname('Pdetalle').asstring :=detalle; DMmonitoreo.zquery1.parambyname('pfechan').asdatetime :=now; DMmonitoreo.ZQuery1.ExecSQL; DMmonitoreo.ZQuery1.close; DMmonitoreo.ZQuery1.SQL.text:='select first 10 * from central left join evento on central.evento=evento.evento order by entradadatos desc'; DMmonitoreo.ZQuery1.Open; if Dmmonitoreo.ZQuery1TIPO.AsString = 'A' THEN begin DMmonitoreo.ZQuery2.Close; DMmonitoreo.ZQuery2.sql.Clear; DMmonitoreo.ZQuery2.SQL.Add('insert into activas (csid,evento,fechan,entradadatos)'); DMmonitoreo.ZQuery2.SQL.add(' values (:pacsid,:paevento,:Pafechan,:paentradadatos)'); DMmonitoreo.zquery2.parambyname('pacsid').asstring := DMmonitoreo.ZQuery1CSID.AsString; DMmonitoreo.zquery2.parambyname('Paevento').asstring :=dmmonitoreo.ZQuery1EVENTO.AsString; DMmonitoreo.zquery2.parambyname('pafechan').asdatetime := DMmonitoreo.ZQuery1FECHAN.AsDateTime; DMmonitoreo.zquery2.parambyname('Paentradadatos').asinteger := DMmonitoreo.ZQuery1ENTRADADATOS.asinteger; DMmonitoreo.ZQuery2.ExecSQL; DMmonitoreo.ZQuery2.close; DMmonitoreo.ZQuery2.SQL.text:='select first 10 * from activas left join evento on activas.evento=evento.evento order by alarmnum desc'; DMmonitoreo.ZQuery2.Open; End; end;
y en el datamodule esto:
procedure TDMmonitoreo.ZQuery1AfterInsert(DataSet: TDataSet); begin DMmonitoreo.ZQuery1.Active:=true; DMmonitoreo.ZQuery1.Refresh; DMmonitoreo.zquery1.Last; end;
cuando eran pocos registros no habia problemas, pero ahora que son muchos el proceso se hace muy lento.
Lo que necesito es que cuando llega un nuevo registro la base de datos se actualice sin que sea tan lento.
PD. Me encantaria hacerlo con un SP, pero no se como utilizarlos, rolphy dame una mano con eso.
saludos
y gracias