Cita:
Empezado por Dclase
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.