Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ¿cual es el error? Acces violation at adress 006C696E. Write of adress 004AD5EC (https://www.clubdelphi.com/foros/showthread.php?t=63091)

rrf 29-01-2009 08:30:09

¿cual es el error? Acces violation at adress 006C696E. Write of adress 004AD5EC
 
Hola a tod@s.
Hago una pequeña aplicación en la que uso Delphi 5 Pro, con IBExpress 5.04 y con Firebird 2.0.
Al dar de alta un nuevo registro en un IBDataSet, lo hacía con:
IBDataSet.insert ;
y me funcionaba bien.
Sin embargo, tras hacer unos cambios en el programa, de pronto me da este error al llegar a esa línea ( IBDataSet.insert ; ):

"Acces violation at adress 006C696E. Write of adress 004AD5EC"

No se cual es el error y, aunque supongo que lo encontraré, les pido ayuda por si alguien sabe de alguna información acerca de estos errores (que supongo que se trata de algún fallo que cometo con Firebird, aunque no lo tengo muy claro). De esta manera, espero ahorrarme el estar 1 ó varias horas de ensayo y error sin saber muy bien cual es el error.
¿Existe algún archivo con información de lo que ocurre con estos errores?.
También, si alguien me puede aclarar cual es este error también lo agradecería.
Muchas gracias de antemano.
Ramón.

duilioisola 29-01-2009 08:55:49

Puedes fijarte que tienes en el evento OnNewReccord. Quizás está haciendo alguna llamada que no es correcta.

También sucede cuando rellenas parámetros que no existen
Código:

insert into TablaX (campo) values (?campoX)
Params.ByName['CAMPOY'].AsInteger := 123;


Espartaco 29-01-2009 09:17:14

Precisamente acabo de solucionar un problema similar que me ha corroborado que este tipo de errores de Acces Violation ocurren porque se trata de acceder a un objeto que no ha sido creado o que se ha destruido.

Mi consejo es que repases bien el codigo y tus indagaciones vayan mas por este camino que por el que parece ser que te provoca el error.

No te pongo la cita del hilo en el que he solucionado esto porque no se hacerlo (por cierto si alguien me lo puede decir se lo agradeceria), pero si miras en el foro de "Conexion con bases de datos" veras que esta de los primeros.

Un saludo y suerte.

duilioisola 29-01-2009 09:37:45

Hilo anterior

Primero debes copiar la direccion. (Por ejemplo de la barra de direcciones de tu navegador)
Luego debes marcar el texto (la parte que quieras que se pueda clickear)
Finalmente debes picar sobre el icono que parece un mundo con un clip y pegar esa dirección.

Quedará mas o menos así:
[ URL ="http://www.clubdelphi.com/foros/showthread.php?t=63065"]Hilo anterior[/ URL ]

rrf 29-01-2009 09:38:41

La otra consulta similar
 
Gracias por las rápidas respuestas.

Espartaco, la dirección que comentabas creo que es esta:

http://www.clubdelphi.com/foros/showthread.php?t=63065

(Espartaco, la forma de incluir la dirección de ese 'hilo' ha sido situarme en la página, copiar la dirección del navegador y pegarla en el texto al escribir la respuesta. A mí me ha funcionado, aunque supongo que habrán formas más elegantes o rápidas de hacerlo).

Aún no he leido bien las respuestas, porque donde ahora estoy no puedo hacerlo, pero espero hacerlo en un momento.

Gracias de nuevo por las respuestas.

Ramón

P.D. Mientras escribía la respuesta, también duilioisola hacía lo mismo.

Espartaco 29-01-2009 10:37:18

Gracias, por la informacion sobre como poner un enlace, hago la prueba:

este hilo

el dia que deje de aprender significara que ya no existo.

Saludos.

rrf 29-01-2009 16:46:02

Bueno, ya está solucionado.

Efectivamente, no había problema en el IBDataSet.Insert , el problema estaba en que, al activarse el evento OnAfterScroll (u OnScroll, pues no lo estoy consultando ahora), se cometía un error allí, porque intentaba leer información de ese nuevo registro antes de que tuviera valores y antes de haberle hecho un IBDataSet.Post.

Muchas gracias duilioisola y Espartaco, pues me dieron las pistas adecuadas.

Salu2 para to2.

Ramón.


La franja horaria es GMT +2. Ahora son las 00:54:02.

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