EAccessViolation
Hola a todos,
Tengo la siguiente dificultad al correr el siguiente procedimiento la aplicación me muestra un error de 'Access Violation at address 005B91C9 in module 'XXXXX.exe'. Read of address 00002F0'. Código:
procedure TFrmProductoEmpaque.DBEcicloKeyPress(Sender: TObject; Espero haberme hecho entender y sobre todo que me puedan ayudar. Gracias :) |
Cita:
Has intentado correr el programa con F7 o F8 para saber exactamente en qué linea te provoca el error ?... Creo que tiene que ver con la función perform que usas... |
Coincido con fenareth la asignación a swciclo no tiene sentido, pero eso no produce el error como tampoco lo hace el perform.
El único error que puedo suponer es que la tabla no esté en dsEdit cuando haces: Reproduje el código usando un ttable con el mínimo requisito para que funcione la procedure. No me dio el error 'Access violation' pero sólo uso lo que envias. Revisa los DataSource de los controles DataAware... también controla como llamas al Form y como lo cierras. Espero que te ayude en algo, suerte |
EAccessViolation
:(Despues de un largo tiempo....
Eh vuelto a retomar este error y aun continua efectivamente Fenareth tiene razón me sobra el swciclo, tambien sigo el consejo de ecfisa pero aún así el error continua. Corriendo el programa con F8 el error me sale en la siguiente lienea: Código Delphi [-] if (copy(FrmProductos.DBECodigo.Text,1,2)='43') or (copy(FrmProductos.DBECodigo.Text,1,2)='35') or (copy(FrmProductos.DBECodigo.Text,1,2)='44') or (copy(FrmProductos.DBECodigo.Text,1,2)='45') or (copy(FrmProductos.DBECodigo.Text,1,2)='42')then El procedimiento completo es el siguiente, espero me puedan dar algo de luces ya que no se que hacer. Gracias Código Delphi [-]procedure TDMsip.TblproductosBeforePost(DataSet: TDataSet); begin if (TblUsuarios['codigo_area']='002') or (userw = 'SYSDBA') or (userw = '001') then else //se vuelve a validar para que produccion pueda modificar el campo ciclo if (TblUsuarios['codigo_area']='001') or (userw = '001') then else begin ShowMessage('Usuario no autorizado para Insertar o Modificar'); abort; end; if TblProductos['referencia']='' then begin ShowMessage('Se requiere la referencia del producto'); abort; end; if DmSip1.TblCriticaProducto.locate('referencia',TblProductos['referencia'],[]) then begin DmSip1.TblCriticaProducto.edit; DmSip1.TblCriticaProducto['productos'] := 'X'; DmSip1.TblCriticaProducto.post; end; if DmSip1.TblCriticaProductoDecorado.locate('referencia',TblProductos['referencia'],[]) then begin DmSip1.TblCriticaProductoDecorado.edit; DmSip1.TblCriticaProductoDecorado['productos'] := 'X'; DmSip1.TblCriticaProductoDecorado.post; end; if TblProductos['plano'] = null then TblProductos['plano'] := ''; if TblProductos['plano_interno'] = null then TblProductos['plano_interno'] := ''; if (copy(FrmProductos.DBECodigo.Text,1,2)='43') or (copy(FrmProductos.DBECodigo.Text,1,2)='35') or (copy(FrmProductos.DBECodigo.Text,1,2)='44') or (copy(FrmProductos.DBECodigo.Text,1,2)='45') or (copy(FrmProductos.DBECodigo.Text,1,2)='42')then else if (TblProductos['plano']='') and (TblProductos['plano_interno']='') then begin ShowMessage('Debe digitar al menos un plano'); abort; end; //end; if TblProductos['plano']<> '' then begin if TblProductos['plano_interno']='' then else begin ShowMessage('Solo se debe digitar un plano'); abort; end; end; if ingresarp then TblProductos['listaprecios']:='N'; //OJO CAMBIO PARA PODER GRABAR FECHA MIRAR QUE PASA //OJO MIRAR QUE PASA PARA CAMBIA EL ESTADO EN REFERENCIA SALE ERROR if cambiapeso then begin TblColorProducto.locate('referencia',TblProductos['referencia'],[]); TblColorProducto.edit; TblColorProducto['fechamodificacion']:= now; TblColorProducto['usuario']:= userw; TblColorProducto.post; end; cambiapeso := false; end; |
La franja horaria es GMT +2. Ahora son las 16:24:20. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi