Autor |
Mensaje |
sergio
Usuario
Registrado: Octobre 2011
Mensajes: 3
Edad: 42
|
Borrar Elemento Dentro De Objeto RESULT
ubuntu 10.04 LTS
gambas 2.19
Hola a todos,
mi problema es que no puedo borrar un elemento dentro de un objeto RESULT que contiene una consulta a una tabla.
Quiero borrarlo de mi consulta y no de la tabla original.
El fragmento de código es:
DIM hConn AS Connection
DIM hResul AS Result
DIM id AS Integer
hConn = NEW Connection
hConn.Host = "/home/gambas/basedatos"
hConn.Name = "prueba"
hConn.Type = "sqlite3"
hResul = hConn.Exec("select * from tamano")
FOR EACH hResul
id = hResul["id"]
IF id = 4 THEN
hResul.Delete()
' hConn.Exec("delete from tamano where id=&1", id)
ENDIF
NEXT
Al ejecutarlo recibo un mensaje de error que dice "Result is read-only"
¿necesito algún argumento para ejecutar .Delete()?
Gracias de antemano.
|
#1 Martes, 11 Octobre 2011, 07:37 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Borrar Elemento Dentro De Objeto RESULT
No lo borres, símplemente no lo selecciones:
hResul = hConn.Exec("select * from tamano where id <> 4")
Suerte
=================== No podemos regresar
|
#2 Martes, 11 Octobre 2011, 09:00 |
|
|
sergio
Usuario
Registrado: Octobre 2011
Mensajes: 3
Edad: 42
|
Re: Borrar Elemento Dentro De Objeto RESULT
Gracias por la sugerencia pero no me vale esa solución.
El fragmento de código que he insertado es sólo una muestra de lo que tengo.
En realidad lo que necesito es cargar toda la tabla para que según los parámetros que introduzca el usuario quedarme con los resultados adecuados.
Si tuviese que hacerlos con sentencias SQL debería contemplar una gran variedad de combinaciones y posibilidades.
Este método incluye un parámetro boolean pero no se como manejarlo.
|
#3 Martes, 11 Octobre 2011, 11:11 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Borrar Elemento Dentro De Objeto RESULT
En todo caso un objeto result es un objeto ligado a una fuente de datos e indisociable de la misma. No puedes borrar cosas de él y que no se borren de la tabla origen.
No sé a qué te refieres exactamente con eso de los parámetros que introduzca el usuario, pero si se trata de que él elija qué campos quiere o qué condiciones quiere, dale una lista de campos y que elija y luego construye la sentencia con ellos. Si se trata de los segundo, dale un formulario para que filtre él mismo. Algo así:
Selección de campos para hacer listados:
Selección de registros por el usuario:
Si te sirven o interesa, puedes encontrar el código fuente en éste hilo:
http://foro.gambas-es.org/viewtopic.php?f=5&t=1515&p=10150
Suerte
|
#4 Martes, 11 Octobre 2011, 17:14 |
|
|
david
Programador
Registrado: Septiembre 2009
Mensajes: 110
Edad: 47 Ubicación: puerto de santa maria (Cadiz)
|
Re: Borrar Elemento Dentro De Objeto RESULT
haber sergio prueba esto
Try hConn.Exec("delete from tamano where titulo=&1", id)
|
#5 Martes, 11 Octobre 2011, 20:50 |
|
|
sergio
Usuario
Registrado: Octobre 2011
Mensajes: 3
Edad: 42
|
Re: Borrar Elemento Dentro De Objeto RESULT
Hola, ya pude hacer lo que quería.
En esta pagina encontre la solución:
http://willicab.gnu.org.ve/tutogamb...car-y-eliminar/
En vez de usar el método EXEC utilizo el método EDIT. Puedo hacer cambios, filtros sucesivos y modificaciones dejando la tabla intacta, siguiendo el método que se describe en el link.
Gracias por todas las lecturas y por las sugerencias recibidas.
|
#6 Jueves, 13 Octobre 2011, 09:11 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Borrar Elemento Dentro De Objeto RESULT
Citar: mi problema es que no puedo borrar un elemento dentro de un objeto RESULT que contiene una consulta a una tabla.
Quiero borrarlo de mi consulta y no de la tabla original.
Pues esos métodos te borran el registro de la tabla... salvo que yo no entienda la frase de arriba.
última edición por shordi el Jueves, 13 Octobre 2011, 09:16; editado 1 vez
|
#7 Jueves, 13 Octobre 2011, 09:15 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Borrar Elemento Dentro De Objeto RESULT
"Quiero borrarlo de mi consulta y no de la tabla original. "
Borrarlo de tu consulta no puedes, pero si borrarlo donde la estes presentando, un gridviews, por ejemplo. Cuando llegues al resultado de la conculta que no quieres que se represente, entonce salta de ese resultado de consulta al siguiente....
Por ejemplo en el ejemplo que puse en mi blog:
http://jsbsan.blogspot.com/2011/10/...ta-mostrar.html
Seria algo asi como
Esto haria que si el valor de la consulta es distinto a 100 (en el campo que indique el valor de column), muestra el valor, en caso contrario no lo mostrara.
Saludos
|
#8 Jueves, 13 Octobre 2011, 17:48 |
|
|
|