Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-08-2008
cesar_gta86 cesar_gta86 is offline
Miembro
 
Registrado: oct 2007
Posts: 32
Poder: 0
cesar_gta86 Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 07-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 07-08-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
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:

Código Delphi [-]
    
    Table1.First;
    while Not Table1.EOF do
        if table1.fieldbyname('No_ctrl').asstring=edit1.text then
            Table1.Delete
        else 
            Table1.Next;

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 11:26:16.
Responder Con Cita
  #4  
Antiguo 10-08-2008
cesar_gta86 cesar_gta86 is offline
Miembro
 
Registrado: oct 2007
Posts: 32
Poder: 0
cesar_gta86 Va por buen camino
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.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error Creating cursor handle jose_205711 Conexión con bases de datos 3 06-11-2010 10: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 21:19:53
Error creating cursor handle miguel_fr SQL 6 02-01-2007 12:47:09
¿Por qué me da este error?Error creating cursor manejador nuri SQL 2 01-08-2005 17:30:28
Error creating cursor handle emartinez SQL 6 11-05-2005 17:45:15


La franja horaria es GMT +2. Ahora son las 20:37:57.


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