FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error: Cannot perform this operation on a closed dataset
Hola gente,
Les cuento que estoy haciendo un programita el cual me esta llevando mucho tiempo porque me sale un error que no se como solucionarlo, me podrían ayudar? Resulta que tengo un formulario donde agrego tareas, lo ejecuto y funciona, pero cuando agrego varias tareas a la vez me sale el siguiente error: ' Cannot perform this operation on a closed dataset' y la verdad es que no tengo idea de como solucionarlo. Agradecere mucho su ayuda, saludos |
#2
|
|||
|
|||
Hola,
la traduccion de este error es que no se puede hacer la operacion en un conjunto de datos cerrados. Esto es, tienes el query o la tabla cerrados. Para abrirlos, debes usar query.open o bien query.active := true. En caso de ser tablas, table.Open. Ten en cuenta que si usas ado y queries, despues de un 'select' debes usar active := true, mientras que para el resto debes usar ExecSQL. saludos |
#3
|
|||
|
|||
Hola, gracias por la rapidez de tu repuesta.
Pero te cuento que esas consideraciones las tuve en cuenta. En agregar una tarea uso un insert, (tarabajo con ado y query), y al terminar pongo ExecSQL, Y tengo otro procediemiento donde uso un select, decime escribo query.active:= true o query.open? Igual probe de las dos maneras y me sigue saliendo error. |
#4
|
|||
|
|||
Bien, deberias hacer algo asi
al final debes abrirla para poder seguir trabajando con ella. Usa el debugger (f5,f7,f8) para saber exactamente en que linea te salta y prueba de ponernos el codigo, si aun no se soluciona. PD: personalmente siempre uso active := false, active := true, aunque creo que son completamente equivalentes. Eso si, para el select el active/open. Para el resto, el execsql. No entiendo esta distincion en ado, pues en bde no ocurre, pero asi es. Saludos. |
#5
|
|||
|
|||
ok, mira sos super, muchas gracias por tu ayuda, pero no tuve exito, asi que te paso mi codigo original y decime como lo arreglo porfis:
donde buscaroperador es:
Última edición por roman fecha: 02-07-2008 a las 17:13:14. Razón: Corregir etiquetas [delphi] |
#6
|
|||
|
|||
y donde te salta la excepcion? en el execsql? o despues?
creo que el problema te viene del dbgrid1.Fields[0].Value, y, si cbasunto y mcom son dbedits, quiza tambien por alli. prueba de poner valores de test a estos o ves comentando las lineas, para saber exactamente que es lo que te lo esta provocando, si no es en el execsql. Usa f5,f7,f8 para saber exactamente donde te salta. El debugger esta precisamente para esto. Última edición por coso fecha: 02-07-2008 a las 16:43:17. |
#7
|
||||
|
||||
No estan funcionando correactamente las etiquetas de DELPHI
|
#9
|
|||
|
|||
apenas pasa el ExecSQL me salta el error
|
#10
|
|||
|
|||
vamos a ver... si pones un breakpoint (F5) en la linea
y vas con el F8 siguiendo linea por linea...te salta en la linea
? me esta dando la impresion que te salta antes, cuando asignas los valores a los parametros. O bien despues del execsql, en alguna otra funcion que se ejecute a continuacion. En el codigo que has mostrado actualmente no veo ningun error. Última edición por coso fecha: 02-07-2008 a las 16:58:18. |
#11
|
|||
|
|||
Te cuento lo que me salio:
voy con f8 y pasa ExecSQL, y me sale el error que te comento, y una vez que acepto el error el puntero se posiciona en el formulario que crea el form de agregar tarea ftarea:=Tftarea.Create(self); ftarea.Showmodal; ftarea.Free; (aqui apunta ) me siento una inutil . Yo me estoy yendo a clases, pero por favor si puedes responde si sabes como lo soluciono, seguramente durante la tarde le dare una miradita. Saludos y muchas gracias |
#12
|
|||
|
|||
Cita:
Cita:
sinceramente, no se verlo. Si es en la linea execsql donde te salta, no lo entiendo. Quiza tengas la tabla abierta en modo exclusivo por otro lado, por lo que acceder a ella te provoque el error, o quizas codigo en los eventos OnDataChange, OnPost, etc... que te cierre la tabla. Sinceramente, no lo se. Creia que era en el momento en que asignas los argumentos, y que el error de tabla cerrada te lo daba de otra que no fuese tarea. PD: prueba de poner
a ver si soluciona algo... Última edición por coso fecha: 02-07-2008 a las 17:52:58. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Canont perform this operation on a closedataset | yhoho | SQL | 22 | 18-02-2008 17:03:54 |
Cannot perform this operation on a ON A CLOSED DATASET | Yun-i | Varios | 23 | 22-01-2008 18:35:19 |
Firebird - Delphi (Cannot perform operation...) | papulo | Conexión con bases de datos | 5 | 26-10-2005 18:43:22 |
Closed dataset | srobles | Conexión con bases de datos | 3 | 14-03-2005 21:10:24 |
FB+IBX error: IBSQL closed | apicito | Conexión con bases de datos | 0 | 29-05-2003 12:39:57 |
|