![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Problema recursos ???
Tengo un codigo de generacion de facturas muy grande donde me da errores extraños.
Lo curioso es que si lo voy parando y le voy dando cada vez que hace una factura a F8 entonces no da ningun error y funciona perfectamente .... por eso se me ocurrio que puede ser por que el sistema se queda sin recursos y necesita "esperar" o algo similar cada X facturas. Hay alguna forma de parar la ejecuccion del programa durante 2 segundos o similar y que despues siga ejecutandose normalmente ??? El problema me lo da con un : qryProva.UpdateObject := datamodule2.updFacturasCias; Pero como digo no lo da siempre si no a veces. Gracias anticipadas. |
|
#2
|
||||
|
||||
|
Hola Chele!
Prueba con : Application.ProcessMessages; Mira este hilo ProcessMessages Suerte! Saludos . |
|
#3
|
|||
|
|||
|
Pues no era eso ... me sigue dando el error.
el codigo es este : qryProva := TIBQuery.create(qryProva); qryProva.database := datamodule2.database; qryProva.transaction := datamodule2.transaction; qryProva.UpdateObject := datamodule2.updFacturasCias; qryProva.Sql.text := 'Select * from facturascias'; qryProva.Open; qryProva.Append; Y el error lo da en qryProva.UpdateObject := datamodule2.updFacturasCias; Pero no lo da siempre ... ¿alguna idea de por que peude ser?. El error es generico del ejecutable |
|
#4
|
||||
|
||||
|
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#5
|
|||
|
|||
|
El error es :
Project Interiura.exd raised exception class EAccessViolation whit message "Violacion de acceso a la direccion 004ADAB7 en el modulo 'Interiura.exe'. Leer de direccion 0000001B' PRocess stopped. Use step or run to continue Pero es un bucle y entra muchas veces, por eso no entiendo pro que da este error. Sorry por no decir el error desde el principio, se me paso ![]() Última edición por chele fecha: 14-07-2004 a las 16:16:20. |
|
#6
|
||||
|
||||
|
Pues convendría que pusieras el código que se encuentra dentro de ese bucle, probablemente no liberas algún objeto y lo creas de nuevo en cada entrada?
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#7
|
|||
|
|||
|
Gracias por ayudar, aqui os pongo el codigo a ver si veis el error ...
Código:
procedure TfrmGenFac1.BitBtn1Click(Sender: TObject);
var
f : textfile;
fiva : textfile;
cadenaSQL, vdata2, prova, vsAux, vLinia: string;
qry, qry2, qryProva: TIBQuery;
comptador, vcuentacontable, vfecha, vhora, vRazon, vRazon2: string;
vIVA, vBASE, vImpext, vraux : real;
vFPDeposito : boolean;
numApunt, numApuntDiari : integer;
begin
try
AssignFile(f,Edit3.text);
Rewrite(f);
AssignFile(fiva,Edit4.text);
Rewrite(fiva);
except
showmessage('Archivo incorrecto o ruta no válida');
exit;
end;
if RadioButton1.Checked then
begin
cadenaSQL := 'select H.codcia, C.NIF, H.codhoncia, H.codexp, H.tothonor, C.TipoIVA, C.Idioma, C.cuentacontable, C.formapago, C.nombre from honorcias H inner join Compania C '
+ 'on H.codcia = C.codcompania where'
+ ' H.codcia = "' + edit1.text
+ '" and cast(fcierre as date) >= ' + quotedStr(FormatDateTime('mm/dd/yyyy',DFInicial.date))
+ ' and cast(fcierre as date) <= ' + quotedStr(FormatDateTime('mm/dd/yyyy',DFFinal.date))
+ ' and Facturados = "N"';
end;
if RadioButton2.Checked then
begin
cadenaSQL := 'select H.codcia, C.NIF, H.codhoncia, H.codexp, H.tothonor, C.TipoIVA, C.Idioma, C.cuentacontable, C.formapago, C.nombre from honorcias H inner join Compania C '
+ 'on H.codcia = C.codcompania where'
+ ' cast(fcierre as date) >= ' + quotedStr(FormatDateTime('mm/dd/yyyy',DFInicial.date))
+ ' and cast(fcierre as date) <= ' + quotedStr(FormatDateTime('mm/dd/yyyy',DFFinal.date))
+ ' and Facturados = "N"';
end;
try
datamodule2.tblParamFac.open();
qry := TIBQuery.Create(qry);
qry.database := datamodule2.database;
qry.transaction := datamodule2.transaction;
Qry.SQL.Text := cadenaSQL;
qry.open();
qry.FetchAll;
if qry.RecordCount = 0 then
begin
Showmessage('No hay Registros a Facturar en el intervalo seleccionado.');
freeandnil(qry);
// raise exception.create('No hay Registros a Facturar en el intervalo seleccionado.');
end
else
begin
qry.first;
while not qry.EOF do { Cycle until EOF is True }
begin
vCuentaCOntable := qry.fields[7].value;
if qry.fields[8].AsString = 'Compañía' then // FormaPago
vimpext := 0
else
vimpext := CalculGastosExternos(qry.fields[3].value);
vRazon := qry.fields[9].value;
if not varisnull(qry.fields[5].value) then
vIVA := unitproc.Round_nDec(qry.fields[4].value * qry.fields[5].value / 100,2)
else vIVA := 0;
vBASE := qry.fields[4].value + vIVA;
vfecha := FormatDateTime('dd/mm/yyyy',now);
vhora := timetostr(time);
TRY
qryProva := TIBQuery.create(qryProva);
qryProva.database := datamodule2.database;
qryProva.transaction := datamodule2.transaction;
qryProva.UpdateObject := datamodule2.updFacturasCias;
qryProva.Sql.text := 'Select * from facturascias';
qryProva.Open;
qryProva.Append;
qryProva.FieldByName('codfac').asstring := inttostr(unitproc.ComptadorFacCias);
qryProva.FieldByName('codcia').Value := qry.fields[0].value;
qryProva.FieldByName('nif').Value := qry.fields[1].value;
qryProva.FieldByName('codhonor').Value := qry.fields[2].value;
qryProva.FieldByName('femision').asstring := FormatDateTime('dd/mm/yyyy',DFEmision.date);
qryProva.FieldByName('codexp').asstring := qry.fields[3].asstring;
qryProva.FieldByName('importe').asstring := qry.fields[4].asstring;
if not varisnull(qry.fields[5].value) then qryProva.FieldByName('porciva').asstring := qry.fields[5].value
else qryProva.FieldByName('porciva').asstring := '0';
qryProva.FieldByName('gastosext').asstring := floattostr(vIMPEXT);
qryProva.FieldByName('iva').asstring := floattostr(vIVA);
qryProva.FieldByName('base').asstring:= floattostr(vBASE);
qryProva.FieldByName('totfac').asstring:= floattostr(vBASE + vIMPEXT);
qryProva.FieldByName('Idioma').asstring := qry.fields[6].value;
qryProva.FieldByName('CtaGastos').Value := datamodule2.tblParamFacCTAINGRESOS.value;
qryProva.FieldByName('CtaIva').Value := datamodule2.tblParamFacCTAIVACIAS.value;
qryProva.FieldByName('CtaDeudora').Value := datamodule2.tblParamFacCTADEUDORES.value;
qryProva.FieldByName('Iban').Value := datamodule2.tblParamFacIBAN.value;
qryProva.FieldByName('Bic').Value := datamodule2.tblParamFacBIC.value;
qryProva.FieldByName('Cta').Value := datamodule2.tblParamFacCuenTA1.value + '-' + datamodule2.tblParamFacCuenTA2.value + '-'
+ datamodule2.tblParamFacCuenTA3.value + '-' + datamodule2.tblParamFacCuenTA4.value;
qryProva.FieldByName('Banco2').Value := datamodule2.tblParamFacBANCO.value;
qryProva.FieldByName('DiasVenc').asstring := datamodule2.tblParamFacDIASVENC.asstring;
qryProva.FieldByName('hum').AsString := timetostr(time);
qryProva.FieldByName('fum').asstring := datetostr(date);
qryProva.FieldByName('uum').asstring := vusuari;
lblMarquee.caption := 'Factura nº ' + qryProva.FieldByName('codfac').asstring;
lblMarquee.Repaint;
qryProva.Post;
// AQUI VA UN CODIGO MUUUY LARGO DE ESCRIBIR EN UN TXT QUE SE ENVIA AL BANCO.
finally
freeandnil(qryProva);
end;
// MARCAR FACTURAT
try
cadenaSQL := 'update honorcias set Facturados = "S", fvto = "' + FormatDateTime('mm/dd/yyyy',DFEmision.date) + '", '
+ 'ffact = "' + FormatDateTime('mm/dd/yyyy',DFEmision.date) + '"'
+ 'where codhoncia = ' + qry.fields[2].value;
qry2 := TIBQuery.Create(qry2);
qry2.database := datamodule2.database;
qry2.transaction := datamodule2.transaction;
Qry2.SQL.Text := cadenaSQL;
Qry2.Prepare;
Qry2.execsql;
Qry2.unPrepare;
qry2.Transaction.CommitRetaining;
finally
freeandnil(qry2);
end;
qry.Next; { EOF False on success; EOF True when Next fails on last record }
end;
end;
finally
freeandnil(qry);
CloseFile(f);
CloseFile(fiva);
end;
FacturasGastosExternos;
end;
|
|
#8
|
|||
|
|||
|
Nadie sabe que podria ser ???
|
|
#9
|
||||
|
||||
|
Creo que la falta de respuestas se debe a varios factores:
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
|
|
|