Pregunta

Tiene una ADOQuery que tiene OnNewRecord evento.

sobre el procedimiento intento agregar los datos de forma automática a otra mesa. los datos son un par de filas que se necesitan y manipulen de ClientDataSet en caso de cancelación.

en la loc

OtherAdoQuery.insert;

Me sale error que no pudo ADOQuery nula inserción en un campo no nulo. Estoy en el modo de inserción, sin embargo yo nunca pidió DELPHI para publicar! no encuentro razón por la que los mensajes.

Editar:? Podría ayudarme a encontrar una pista sobre este problema

alguna aclaración más:

a

  

ADOQuery.onNewRecord ();

     

iniciar

     

CliendDataSet.insert; // aquí va a publicar para ADOQueryPost. donde ClientDataSet estaba en Navegar Estado

     

final;

Editar:

Este error no tiene sentido! mirar el seguimiento de la pila:

  • beforePost
  • newRecord
  • myFunc

donde myFunc hace causa NewRecord con el inserto.

¿Fue útil?

Solución 2

la respuesta fue de una relación entre las tablas.

el ADOQuery.dataSource se fijó el conjunto de datos de la ClientDataSet.

Este loco tanto daño, y ningún indicio por el Delphi.

Otros consejos

No estoy muy familiarizado con TADOQuery, pero sé cómo rastrear un error como este. En primer lugar, si no lo tiene ya establecido, entra en Opciones de proyecto y encienda el uso de depuración DCU bajo la ficha compilar, a continuación, ejecutar una construcción completa y ejecutarlo. Cuando usted consigue que informe de excepción en el depurador, golpear a la rotura y que debe terminar dentro del código para el TADOQuery o una de sus sub-objetos. Trate de examinar la pila de llamadas. Si se mira un par de llamadas es probable que encuentre algo que lo hizo está llamando otra cosa que está llamando Post. Siga la parte posterior seguimiento de la pila hasta que llegue a su código y obtendrá una idea de lo que está pasando, y si lo analizas un poco usted debe encontrar alguna forma de evitar el problema.

Una vez dicho esto, permítanme hacer una conjetura rápida cuanto a la causa de su problema: Cuando se llama a Insertar en un conjunto de datos, si el conjunto de datos ya está en el modo de anexar porque antes llamado Insertar o Adjuntar y no siguió hasta con un mensaje, se llamará mensaje en sí antes de establecer una nueva fila para que usted pueda trabajar. Tal vez esto es lo que te está pasando?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top