FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error en una consulta "Error creating cursor handle".
Hola amigos, ahora tebgo otro problemita, jeje. Lo que pasa es que por 'x' motivos elimino registros de una tabla, utilizando ciclos, de este modo:
Código Delphi [-] table1.first; while table1.eof<>true do begin if table1.fieldbyname('No_ctrl').asstring=edit1.text then table1.delete; table1.next; end; //esto es para cuando el último registro de la tabla es uno de los quiero elimar if table1.last=true then begin if table1.fieldbyname('No_ctrl').asstring=edit1.text then table1.delete; end; table1.refresh; Pero la verdad, no sé porqué, en ocasiones no elimina todos los registros que quiero eliminar, sino que se brinca uno o dos. Para evitar la utilización de ciclos pensé en utilizar una query y con ella eliminar éstos registros pero al momento que se activa la query manda el mensaje de error: Código Delphi [-] Project Project1.exe raised exception class EnoresultSet whit message 'Error creating cursor handle'. Process stoped. Use step or run to continue. En la query le pongo el siguiente código: Código Delphi [-] cad:='delete from prestamos where No_ctrl=' + char(34) + edit1.text + char(34); //cadena query1.close; query1.sql.clear; quey1.sql.text:=cad; query1.execsql; query1.active:=true; //manda el mensaje de error Las tabla de préstamos está desactivada, creí que ese era el problema, pero no es así, espero que me puedan ayudar, desde ya, grácias por sus respuestas. |
#2
|
|||
|
|||
Hola, a mi me ocurrian errores parecidos (se me doblaban registros, se perdia el cursor de la tabla, etc...) al final tuve que pasarlo todo a ADO la verdad es que con mas o menos el mismo codigo, el resultado es mucho mejor Saludos.
|
#3
|
||||
|
||||
Saludos, con el primer codigo no es necesario hacer el next siempre, solamente cuando no elimina, ya que al eliminar un registro automaticamente te colocaria en el registro siguiente tu codigo deberia quedar asi:
Ahora bien con el query que generas no se que componentes estas usando pero el componente TQuery genera un cursor y la unica instruccion que te permite de las DML es SELECT. proba a usar el componente TISQL (lo digo de memoria). o bien creo que hay una forma de abrir el Query en lugar de open con execSQL. que no te regresa un cursor como resultado sino que el numero de tuplas afectadas por la instruccion. Saludos. Última edición por Kipow fecha: 07-08-2008 a las 12:26:16. |
#4
|
|||
|
|||
Hola, sí funcionó con el código, muchas grácias.
Eso de la query, es verdad lo que dices, porque no me acordaba que tengo tablas Páradox7, y creia que estaba usando tipo mysql. Grácias y nos vemos después. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error Creating cursor handle | jose_205711 | Conexión con bases de datos | 3 | 06-11-2010 11:04:02 |
Error Invalid blob handle in record buffer??? sin usar "Blobs to cache" | varuhs | Conexión con bases de datos | 4 | 22-01-2007 22:19:53 |
Error creating cursor handle | miguel_fr | SQL | 6 | 02-01-2007 13:47:09 |
¿Por qué me da este error?Error creating cursor manejador | nuri | SQL | 2 | 01-08-2005 18:30:28 |
Error creating cursor handle | emartinez | SQL | 6 | 11-05-2005 18:45:15 |
|