![]() |
Error - Not in edit mode
Hola a todos, Tengo Delphi 7, Firebird 2.0, MDO, un form con sus respectivos DBEdit, DataSourge, DBNavigator. La tabla de datos TIngreso esta vacia, doy clic a insertar, pero al momento de cerrar el form sin dar clic en cancelar aparece este error , que hago para que no aparezca este error si yo deseo que al momento de cerrar la aplicacion cuando mi dataset esta en dsInsert o dsEdit se pueda cancelar desde codigo, yo aplique en el evento FormClose lo siguiente:
If fbDataSet.State in dsEditModes then fbDataSet.Cancel; trLocal.Commit; Action := caFree; Y aun asi sale este error, cabe notar que si estoy en modo Inser o Edit y doy clic a cancel en el DBNavigator no lo genera, y necesito cancelar cualquier cambio si el cliente cierra el form. |
Que tal José Román,
Creo que tu error está en:
Ya no tiene sentido hacer commit si tus modificaciones o inserciones se cancelaron. Saludos |
Nada...
Se reporta el mismo error....
|
Cita:
Te recuerdo que también los select's y no no solo los insert/update/delete corren en el contexto de una transacción. Hasta luego. ;) |
Jose Roman: ¿En cual de las líneas que mostras ocurre la excepción?
|
If fbDataSet.State in dsEditModes then fbDataSet.Cancel; No entiendo porque, realizo clic en el boton Insert o Edit del DBNavigator, si realizo click en el boton Cancel y cierro el Form no hay error, pero si el DataSet esta en modo Insert o Edit y lo cierro aparece el error, indicandole lo que se debe realizar en el evento OnClose;
|
Solo por curiosidad.
No tendrás ningún código en BeforeCancel o AfterCancel del Dataset que asignes algún valor. Un saludo. |
Cita:
Me pregunto si lo has ejecutado paso a paso o solamente estas suponiendo que esa es la línea que produce el error. Hasta luego. ;) |
Ya encontre el error..
Encontre el error. El error radica en el evento OnExit de un DBEdit, en el cual le asigno un valor a un campo, mas no le informaba que debia asignarle el valor solo cuando esta en modo de Insert o Edit.
|
Cita:
Yo respondo en el contexto en que el amigo Jose Roman hace su pregunta Cita:
|
Cita:
Si programasemos las aplicaciones pensando solamente en que cuando se instalan, normalmente la gran mayoría de las tablas están vacias... no quiero imaginarme el desempeño y los resultados cuándo esas aplicaciones tengan unos cuantos años en producción... :D |
Cita:
El problema que tenemos a veces es pensar en lugar del usuario, y le presentamos soluciones que van mas alla de sus necesidades. En ninguna parte del mensaje del compañero Jose Roman menciono que su aplicacion es 24x7x365 con transacciones cada 1/2 segundo, etc ... Creeme que que si lo hubiese mencionado otra cosa hubiera sido. ;) PD: No es mi intencion polemizar ni seguir con este debate, es mi punto de vista y ya. |
Estoy de acuerdo en no buscar la polémica.
Normalmente no hago afirmaciones solamente en el contexto del hilo, pues la idea es que lo que acá se dice sea leido por mas gente, ahora y en el futuro, por lo que mejor si es útil para muchos. Lamento la desviación al tema original. |
Cita:
Cita:
Salud OS |
Cita:
Ya Egostar, calma, relajate, a ver respira conmigo 1,2,3... |
Cita:
|
Cita:
|
| La franja horaria es GMT +2. Ahora son las 22:37:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi