Ver Mensaje Individual
  #10  
Antiguo 25-08-2010
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
Cita:
Empezado por Dclase Ver Mensaje
Cuando entra al bucle por primera vez edita el primer registo, pero el siguiente ya me dispara el mensaje de que no puede modificar..
Así sucede porque es hasta la segunda pasada del ciclo cuando, por alguna sentencia de tu código (que quizá dispara un CheckBrowseMode indirecto), se desencadena la llamada al método Post que intenta guardar la operación anterior.

El método Post, llama a InternalPost, el cual, en el caso de TClientDataSet, llama a su vez al método ModifyRecord de su interfaz DSCursor. Este método verifica que ninguno de los campos que estén marcados como de sólo lectura haya sufrido cambios. Si pasa esta validación, el registro es guardado en la memoria del conjunto de datos, de lo contrario arrojará la excepción "Trying to modify read-only field".

El origen del problema es que antes de la operación de guardado el campo en cuestión fue marcado como read only.

Dices que ya revisaste eso, pero ¿podrías mostrarnos cómo estás creando el objeto ClientDataSet2 y definiendo sus campos?

Saludos.

Al.
Responder Con Cita