Ver Mensaje Individual
  #3  
Antiguo 15-08-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Enecumene:

Una causa muy común de los errores AV (excepciones Access Violation), es el intentar acceder a una referencia de objeto inválida. Observando tu código, puede presumirse que uno de estos tres objetos (ya) no es válido en el momento de la llamada al método Append:

FPedido, FPedido.DataSource1 o FPedido.DataSource1.DataSet

Esta invalidez puede consistir en que el elemento en cuestión tiene un valor vacío (Nil al tratarse de objetos) o el objeto al cual apuntaba ha dejado de vivir (fue previamente destruido y liberada su memoria aunque todavía sigue ahí su esqueleto). Considerando que los conjuntos y fuentes de datos (datasets y data sources) suelen integrar a varios otros objetos, el objeto invalidado podría estar en cualquier parte que se relacione con DataSource1 o DataSource1.DataSet.

Pero a juzgar por el texto "Read of Address 0000000" contenido en el mensaje de la excepción (Nil es la dirección de memoria 0), y dado lo común de la pifia, lo más probable es que olvidaste asignar un DataSet a tu componente DataSource1.

Pero lo que me resulta bastante extraño, es que el mensaje de la excepción contenga sólo siete ceros en donde dice 'Read of Address 0000000', cuando lo usual es que sean ocho, además de que algunas letras aparecen con un tamaño distinto al acostumbrado. ¿Será que transcribiste a mano el mensaje? En Delphi (la buena Borland sí piensa en los programadores) existe la posibilidad de presionar Ctrl+C en las ventanas de error, lo cual copia el mensaje íntegro al portapapeles.

Esperamos tus observaciones, no dejes de contarnos.

Un abrazo accesible.

Al González.
Responder Con Cita