Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
Como corregir un error de access violation en delphi...

saludos a todos.

tengo una duda y no se que hacer, resulta que estoy llevando un proyecto en el cual tengo un relacion maestro-detalle en interbase, y llevo dos detalles, ahora que estoy realizando pruebas me da un error de access violation at address 0048AF8B y no me graba los registros en los detalles ni siquiera.
Anteriormente en otra forma me dio un error parecido, y tenia que buscar en Searh/find error y se iba directo al error, y era de esperar que llamaba a otra tabla, me equivoque.

bueno, me sucedio lo mismo con un error de access violation y ahora sabiendo que hacer corri el programa pero me da una pantalla con el titulo CPU y divididos con varias pantallas por decirlo asi en donde tiene numero y letras de memoria algo por el estilo, reinie la maquina y sigue en lo mismo.
este error me da cuando escribo en la dbgrid algun numero que esta referenciado a otra tabla (ID.) y me muevo de registro para actualizarlo.

Uso los Ibdataset y estan llenos las sentencias sql.

La verdad no se que hacer por que no me habia pasado algo asi, que puedo hacer estoy desesperado

les agradesco, gracias.
Responder Con Cita
  #2  
Antiguo 30-11-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Ese error es típico de estar refiriéndose a un componente que aún no se ha creado, o que ya se ha destruido. Tendrás que ir mirando paso a paso hasta dar con él, por ejemplo puedes desactivar momentaneamente los controles o componentes sospechosos del error y puede ser que en momento dado logres que te funcione al tener cierto control desactivado.

También puedes probar con una ejecución paso a paso, así sabras en que línea se produce el error.

Si lo sospechoso son líneas de código coméntalas momentaneamente para desactivarlas, puedes utilizar
//ShowMessage('Desactivada');
o si son varias líneas las colocas entre llaves {desactivado}

Bueno a ver si hay suerte, ya nos dirás donde estaba el gazapo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 01-12-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Como te dicen anteriormente es un acceso a una zona d emoria que no existe.
Osea estas accediendo a un objeto que no existe.

Como vreificar.

En cada lugar donde hagaas llamad ala componente
Código Delphi [-]
if comonente <> nil Then...
Y si no tienes ni la mas puta idea de quien te da el error activa el las excepciones.
En el menu Tools/debug option/Languaje exception y chequea stop on delphi exception.

Y luego cuando te de la violacion de memoria vas al menu seach/find error y escribes la direccion d ememoria que te dice el mensaje de vilolacion y esta se ubicara en la line ecaxta dond eocurrio la violacion.

Y si esto no te sirve entonces tendras que correr copn F7 paso a paso para ver donde se viola la memoria.

Pero si esto no te sirve ve a la iglesia y pidele un milagro a algunos de los antos.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #4  
Antiguo 01-12-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
ok, lo que hice es quitar de nuevo los dos BDgrid que son mis detalles y ponerlos de nuevo y como en una celda doy F3 o tengo seleccionada la opcion cbsEllipsis para abrir la forma y traer el ID cambie la forma de pasar el valor al detalle y ya no me salio el error,
ahora comienzo a capturar en la dbgrid los datos y me arroja por decirlo el resultado que es precio, descripcion y no me graba los cambios,
luego me cambio a la otra dbgrid y comienzo a capturar los datos me arroja los datos de precio y elemento_descripcion y tampoco me los graba en la base de datos.

cuando se capturan en la dbgrid me muevo al siguiente registro para que acepte los cambios.

Por que no me acepta los cambios, es evidente que desde el Ibadmin3 donde creo mis tablas y todo eso.. si me graba los registro y los cambio que haga, es comun que pase esto en programa ?

Que puedo hacer ya grite de desesperacion.

gracias.
Responder Con Cita
  #5  
Antiguo 01-12-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Perdon el problema es una exception o es un grind o es un problema de insert o de edit o de un commit o de que es por fin.

Haber si te entiendo.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #6  
Antiguo 01-12-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El problema es que no sabe cuál es el problema, está un poco perdido y no sabe qué hacer.

Me temo que tendrás que ir despacio, poco a poco, simplificando las cosas, comentando y así ir descartando cosas hasta encontrar el causante.

Tómate una buena jarra de tila y coge la lupa de detective...
Responder Con Cita
  #7  
Antiguo 01-12-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
saludos

Bueno, Primero me salio un error de access violation, ya encontre por que me dada ese error, ahora cuando yo agrego registro en la DBgrid me los agrega y en ese momento los puedo modificar, pero si me salgo de la forma no me actualiza las tablas que tengo como detalle.

tengo las sentencias llenas de instrucciones sql para agregar, modificar borrar y selecionar y refrescar.

como los eventos para actualizar en las tablas, onnewrecord, onafterpost, afterdelete, aftercancel y uso los Ibdataset.

El problema es que no me guarda los registros, solo en la tabla maestra que tengo !.
Pareciera que no le he escrito codigo a los eventos.
Puedo agregar los registros directamente desde el Ibadmin que uso.
Responder Con Cita
  #8  
Antiguo 01-12-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
SAludos

Deber de hacer commit en la transaccion para poder guardar los cambios

Si usas table y tienes la propiedad CacheUpdate habilitada debe hacer tambien un ApplyUpdate
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #9  
Antiguo 03-12-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
saludos a todos,

Uso el componente IBdataset con interbase 6.0, como no me registra los cambios en las tabla de la base de datos, quite los componentes ibdataset y los volvi a enlazar y llenar las propiedades sql-insert, update, refresh, select. y eventos, Listo.

Ahora agrege un regsitro en mi detalle directamente desde el ibadmin, pero me doy cuenta que en el programa puedo ver esos registros y al actualizarlos me los acepta temporalmente pero al moverme al siguiente registro desaparecen.

Código PHP:
yo confirmo los cambios asiIbDetPedido.Transaction.CommitRetaining;
                                              
IbDetPedido.refresh

en los eventos OnAfterPost
afterDelete 
Que puedo hacer si en la DBgrig no me los pasa a las tablas de la base de datos, Yo me refiero a las tablas en donde estan los metadatos.
gracias, agradeceria una opinion ya que lo hice dos veces pero no encuentro por que no graba los cambio.

Gracias club.
Responder Con Cita
  #10  
Antiguo 03-12-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No estarás mirando otra base de datos?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:18:46.


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
Copyright 1996-2007 Club Delphi