FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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 |
#3
|
|||
|
|||
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. |
#4
|
|||
|
|||
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 |
|
|
|