Update taking long time (again)
Posted: Tue 11 Sep 2007 22:20
I have the following code, no matter if im working on my own computer (localhost) or connected to the network server (via IP), it takes from 15 to 35 seconds to insert or update the table.
What i should check?
BTW. im using Mydac 3.55, D7 and MySQL 5.0.xxx
What i should check?
BTW. im using Mydac 3.55, D7 and MySQL 5.0.xxx
Code: Select all
Dm.MyQactualiza.SQL.Text := 'INSERT INTO polizas (SL_POL, SL_NUM, SL_SOL, SL_ASEG, SL_DOM, SL_FREC, SL_OBS1, '+
'SL_OBS2, SL_EDO, SL_TIPO, SL_VIG1, SL_VIG2, SL_CIA, SL_AGE, '+
'SL_PRI, SL_PFRA, SL_DERP, SL_IVA, SL_COM, SL_1ERP, SL_SIGP, '+
'SL_FPOL, SL_FPA, SL_FREN, SL_POLA, SL_COB, SL_OBS3, SL_OBS4, '+
'SL_RENOV, SL_CODCLT, SL_VPAG, SL_DESVP, SL_PLAZO, SL_MON, SL_FALTA,'+
'SL_SUBAG, SL_CONTRATO, SL_EXPE, US_ID, SU_ID, SELSA, SL_FACT1ER, '+
'SL_DESCTO, SL_UPFEC, SL_UPFVEN,SL_UPNUM, SL_UPFOL) VALUES '+
'(:SL_POL, :SL_NUM, :SL_SOL, :SL_ASEG, :SL_DOM, :SL_FREC, :SL_OBS1, '+
':SL_OBS2, :SL_EDO, :SL_TIPO, :SL_VIG1, :SL_VIG2, :SL_CIA, :SL_AGE, '+
':SL_PRI, :SL_PFRA, :SL_DERP, :SL_IVA, :SL_COM, :SL_1ERP, :SL_SIGP, '+
':SL_FPOL, :SL_FPA, :SL_FREN, :SL_POLA, :SL_COB, :SL_OBS3, :SL_OBS4, '+
':SL_RENOV, :SL_CODCLT, :SL_VPAG, :SL_DESVP,:SL_PLAZO,:SL_MON, :SL_FALTA,'+
':SL_SUBAG, :SL_CONTRATO,:SL_EXPE,:US_ID, :SU_ID, :SELSA, :SL_FACT1ER,'+
':SL_DESCTO,:SL_UPFEC, :SL_UPFVEN,:SL_UPNUM,:SL_UPFOL)';
Dm.MyQactualiza.Parambyname('SL_FREN').Asdatetime := Encodedate(1900,1,1);
Dm.MyQactualiza.Parambyname('SL_FALTA').Asdatetime := Gfechaact;
Dm.MyQactualiza.Parambyname('SL_POLA').AsString := '';
Dm.MyQactualiza.Parambyname('SL_RENOV').Asstring := '';
Dm.MyQactualiza.Parambyname('SL_UPNUM').Asstring := '';
Dm.MyQactualiza.Parambyname('SL_UPFOL').Asstring := '';
Dm.MyQactualiza.Parambyname('SL_UPFEC').Asdatetime := Encodedate(1900,1,1);
Dm.MyQactualiza.Parambyname('SL_UPFVEN').Asdatetime := Encodedate(1900,1,1);
end
else
begin
//determina si es necesario generar nuevos recibos en la edicion de polizas
If (Qpolizas.FieldByName('SL_FPA').AsInteger Strtoint(Copy(Eformadepago.Text,1,1))) or
(Trunc(Qpolizas.FieldByName('SL_VIG1').AsDateTime) Trunc(Evigencia1.Date)) Or
(Trunc(Qpolizas.FieldByName('SL_VIG2').AsDateTime) Trunc(Evigencia2.Date)) or
(Roundto(Qpolizas.FieldByName('SL_PRI').Asfloat,-2) Roundto(Eprimaneta.Value,-2)) Or
(Roundto(Qpolizas.FieldByName('SL_DESCTO').Asfloat,-2) Roundto(Edescuento.Value,-2)) Or
(Roundto(Qpolizas.FieldByName('SL_PFRA').AsFloat,-2) Roundto(Epagofracc.Value,-2)) Or
(Roundto(Qpolizas.FieldByName('SL_DERP').AsFloat,-2) Roundto(Egastosexp.Value,-2)) Then
xnvosrecibos := True;
Dm.Bitacora('POLIZAS','Edicion de poliza',Epoliza2.Text);
Dm.MyQactualiza.SQL.Text := 'UPDATE polizas SET SL_POL = :SL_POL, SL_NUM = :SL_NUM, SL_SOL = :SL_SOL, SL_ASEG = :SL_ASEG,'+
'SL_DOM = :SL_DOM, SL_TEL = :SL_TEL, SL_FREC = :SL_FREC, SL_OBS1 = :SL_OBS1, SL_OBS2 = :SL_OBS2,'+
'SL_EDO = :SL_EDO, SL_TIPO = :SL_TIPO, SL_VIG1 = :SL_VIG1, SL_VIG2 = :SL_VIG2, SL_CIA = :SL_CIA,'+
'SL_AGE = :SL_AGE, SL_PRI = :SL_PRI, SL_PFRA = :SL_PFRA, SL_DERP = :SL_DERP, SL_IVA = :SL_IVA,'+
'SL_COM = :SL_COM, SL_1ERP = :SL_1ERP, SL_SIGP = :SL_SIGP, SL_FPOL = :SL_FPOL, SL_FPA = :SL_FPA,'+
'SL_FREN = :SL_FREN, SL_POLA = :SL_POLA, SL_COB = :SL_COB,'+
'SL_OBS3 = :SL_OBS3, SL_OBS4 = :SL_OBS4, SL_RENOV = :SL_RENOV, SL_CODCLT = :SL_CODCLT,'+
'SL_VPAG = :SL_VPAG, SL_DESVP = :SL_DESVP, SL_PLAZO = :SL_PLAZO, SL_MON = :SL_MON, '+
'SL_SUBAG = :SL_SUBAG, SL_CONTRATO = :SL_CONTRATO, SL_EXPE = :SL_EXPE, US_ID = :US_ID, SU_ID = :SU_ID,'+
'SELSA = :SELSA, SL_FACT1ER = :SL_FACT1ER, SL_DESCTO=:SL_DESCTO Where SL_ID = :Old_SL_ID';
Dm.MyQactualiza.ParamByName('Old_SL_ID').AsInteger := Qpolizas.FieldByName('SL_ID').AsInteger;
end;
If xrenova = True Then
begin
Dm.MyQactualiza.Parambyname('SL_FREN').Asdatetime := Gfechaact;
Dm.MyQactualiza.Parambyname('SL_POLA').AsString := xpolactual;
Dm.MyQactualiza.Parambyname('SL_RENOV').Asstring := Epoliza2.text;
end;
Dm.MyQactualiza.Parambyname('US_ID').Value := Gusid;
Dm.MyQactualiza.Parambyname('SL_SOL').Value := Esolicitud.Text;
Dm.MyQactualiza.Parambyname('SL_POL').Value := Epoliza2.Text;
Dm.MyQactualiza.Parambyname('Sl_DOM').AsString := Copy(CBdireccion.Text,1,5);
//Dm.MyQactualiza.Parambyname('SL_codclt').Value := Ecl_codclt.Text;
Dm.MyQactualiza.Parambyname('SL_NUM').Value := strtoint(Ecliente.Text);
Dm.MyQactualiza.Parambyname('SL_ASEG').Value := Easegurado.Text;
Dm.MyQactualiza.Parambyname('SL_FPOL').Asdatetime:= Eemision.Date;
Dm.MyQactualiza.Parambyname('SL_FREC').AsDatetime:= Gfechaact;
Dm.MyQactualiza.Parambyname('SL_OBS1').Value := Eobs1.Text;
Dm.MyQactualiza.Parambyname('SL_OBS2').Value := Eobs2.Text;
Dm.MyQactualiza.Parambyname('SL_OBS3').Value := Eobs3.Text;
Dm.MyQactualiza.Parambyname('SL_OBS4').Value := Eobs4.Text;
Dm.MyQactualiza.Parambyname('SL_EDO').Value := Copy(Eestatus.Text,1,1);
Dm.MyQactualiza.Parambyname('SL_COB').Value := Copy(Cobertura.text,1,Ansipos('-',Cobertura.text)-1);
Dm.MyQactualiza.Parambyname('SL_TIPO').Value := Eramo.text;
Dm.MyQactualiza.Parambyname('SL_VIG1').Asdatetime:= Evigencia1.Date;
Dm.MyQactualiza.Parambyname('SL_VIG2').Asdatetime:= Evigencia2.Date;
Dm.MyQactualiza.Parambyname('SL_CIA').Value := Ecia.Text;
Dm.MyQactualiza.Parambyname('SL_PRI').Value := Eprimaneta.Value;
Dm.MyQactualiza.Parambyname('SL_DESCTO').Value := Edescuento.Value;
Dm.MyQactualiza.Parambyname('SL_PFRA').Value := Epagofracc.Value;
Dm.MyQactualiza.Parambyname('SL_DERP').Value := Egastosexp.Value;
Dm.MyQactualiza.Parambyname('SL_IVA').Value := Eiva.Value;
Dm.MyQactualiza.Parambyname('SL_COM').Value := Ecomision.Value;
Dm.MyQactualiza.Parambyname('SL_1ERP').Value := E1erpago.Value;
Dm.MyQactualiza.Parambyname('SL_SIGP').Value := E2opago.Value;
Dm.MyQactualiza.Parambyname('SL_FPA').value := Strtoint(Copy(Eformadepago.Text,1,1));
Dm.MyQactualiza.Parambyname('SL_VPAG').Value := Copy(Eviapag.Text,1,1);
Dm.MyQactualiza.Parambyname('SL_FACT1ER').Value := Efact1er.Text;
Dm.MyQactualiza.Parambyname('SL_AGE').Value := Esubag.Text;
Dm.MyQactualiza.ParamByName('SELSA').Value := Strtointdef(Eselsa.Text,0);
Dm.MyQactualiza.ParamByName('SU_ID').Value := xsucursal;
Dm.MyQactualiza.Parambyname('SL_DESVP').Value := Edesviapag.Text;
Dm.MyQactualiza.Parambyname('SL_CONTRATO').Value := Econtrato.Text;
if Esubag.Text '' then
Dm.MyQactualiza.Parambyname('SL_SUBAG').Value := Esubag.Text
else
Dm.MyQactualiza.Parambyname('SL_SUBAG').Value := '0';
If RBdlls.Checked then
Dm.MyQactualiza.Parambyname('SL_MON').AsString := 'D'
else
Dm.MyQactualiza.Parambyname('SL_MON').AsString := 'P';
Fcappol.Cursor := crHourglass;
Dm.MyQactualiza.Execute;