Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-08-2005
vidi vidi is offline
Registrado
 
Registrado: nov 2004
Posts: 4
Poder: 0
vidi Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 04-08-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 04-08-2005
vidi vidi is offline
Registrado
 
Registrado: nov 2004
Posts: 4
Poder: 0
vidi Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 04-08-2005
vidi vidi is offline
Registrado
 
Registrado: nov 2004
Posts: 4
Poder: 0
vidi Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:43:04.


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
Copyright 1996-2007 Club Delphi