Problema con DataSet y DBRadioGroup
Hola. Tengo un problema que me està volviendo loco.
Tengo una base de datos llamada usuarios. En mi programa tengo un Data Module donde tengo declarada la conexión a la Base de Datos (interbase), la transaccion y un dataset para acceder a los datos. En el dataset, tengo inicializado el campo SelectSQL com "select * from usuarios", y el ModifySQL "update usuario set gestion:gestion, bdg=:bdg where nombre=:nombre". Tengo un formulario para poder modificar los privilegios de los usuarios. En esta tengo DBRadioGroup para poder cambiar el campo gestion (varchar[1]) que puede tener los valores T, L i D. Hasta aquí todo bien. El problema está al cerrar la ventana i desactivar el DataSet o la transacción. Me da error "List index out of bounds (-1). Lo curioso del caso es que he puesto un Boton en el formulario (para hacer pruebas) que te permite abrir i cerrar el dataset. Si modifico el campo "gestion" y hago post todo correcto. Si cierro la ventana (al cerrar la ventana se cierra el dataset) me da ERROR. Si por el contrario, después del post abro i cierro el dataset con los botones adicionales que le he puesto y después cierro la ventana, funciona correctamente. Me estoy volviendfo loco. :mad: |
A lo mejor te estoy contestando la a por la j, pero prueba con la propiedad state del dataset:
if (dataset.state in [dsEdit, dsInsert]) dataset.post (o lo que le quieras hacer) Esto lo puedes poner en el onclose del formulario, para asegurarte que el dataset no queda por ahí en edición o en inserción. Un saludo Edu |
Cuando cierro el dataset ya ha sido guardado con anterioridad.
El error solo me aparece cuando tengo el DBRadioGroup. Si lo quito y pongo un dbedit para editar el campo gestion funciona correctamente. |
He encontrado una solución un poco chapuza. Si antes de cerrar el formulario deshabilito DBRadioGroup (enabled:=false), funciona bien, pero no creo que sea la manera correcta de proceder.
Si alguien encuentra un manera mejor de actuar que me lo diga por favor. Muchas grácias |
La franja horaria es GMT +2. Ahora son las 12:58:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi