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 19-09-2007
Shikanda Shikanda is offline
Miembro
 
Registrado: ago 2007
Posts: 36
Poder: 0
Shikanda Va por buen camino
No puedo eliminar registros de una tabla

Buenos dias a todos!

Vereis, llevo un par de dias dándole vueltas a una cosa extraña que me pasa. Resulta que en mi programa delphi tengo un query con el que mando una instrucción sql a mi base de datos (interbase & firebird) pero no sé porqué no la consigue ejecutar. Es tan simple como:
Código Delphi [-]
QELIMINACALEN.SQL.CLEAR;
                QELIMINACALEN.SQL.Add('DELETE FROM CALENDARIO WHERE CODIGO='+ CHR(39)+ CALENDARIO + CHR(39) ) ;
                QELIMINACALEN.Open;

Y en la tercera linea se queda como.... congelado. No lanza error pero deja de funcionar. Intenté ejecutar la instrucción desde la base de datos directamente y aquí es donde me sale el mensaje extraño, que os paso a comentar:
Código Delphi [-]
ISC ERROR CODE:335544345

ISC ERROR MESSAGE:
lock conflict on no wait transaction
deadlock
update conflicts with concurrent update


Alguien tiene alguna idea de porqué me pasa esto???
Responder Con Cita
  #2  
Antiguo 19-09-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
En el codigo debe cambiar
Código Delphi [-]
QELIMINACALEN.Open;
por
Código Delphi [-]
QELIMINACALEN.ExecSQL;
El procedimiento Open se usa sólo cuando se van a traer datos, es decir, cuando se trata de un Select, para Insert y Update se utiliza ExecSQL.

El segundo error se debe a que alguien modificó el registro antes y todavía no se hizo un commit o rollback. Revisa que hagas commit o rollback al final de cada transacción.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #3  
Antiguo 19-09-2007
Shikanda Shikanda is offline
Miembro
 
Registrado: ago 2007
Posts: 36
Poder: 0
Shikanda Va por buen camino
A las transacciones les he puesto la opcion Read Commited (no tenia nada seleccionado) y he hecho los cambios que me has comentado, quedando el código así:
Código Delphi [-]
QELIMINACALEN.SQL.CLEAR;
QELIMINACALEN.SQL.Add('DELETE FROM CALENDARIO WHERE CODIGO='+ CHR(39)+ CALENDARIO + CHR(39) ) ;
QELIMINACALEN.ExecSQL;
QELIMINACALEN.Transaction.Commit;

pero lo único que ha cambiado es que el mensaje que me salía en la base de datos me sale ahora en delphi Además es que soy muy nuevo programando en delphi y no entiendo eso de "lock conflict on no wait transaction"....
Responder Con Cita
  #4  
Antiguo 19-09-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
¿Qué gestor de bases de datos utilizas y que estás haciendo antes de lanzar la consulta?

Puedes hacer la siguiente prueba:

1.- Matas el servicio de la base de datos.
2.- Lo levantas.
3.- Lanzas la consulta directamente contra la base de datos.

Si con esto de siguen dando el error es que hay algo mal configurado en la base de datos.

Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #5  
Antiguo 24-09-2007
Shikanda Shikanda is offline
Miembro
 
Registrado: ago 2007
Posts: 36
Poder: 0
Shikanda Va por buen camino
Al final se ve que era un problema de la base de datos. He estado tocándola mucho últimamente y se ve que algo jodí. Menos mal que tenía copias de seguridad y pude recuperar los datos.

En cualquier caso, muchas gracias por la ayuda!
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
Eliminar y actualizar registros con SQL Jheysson13 SQL 3 28-07-2006 22:32:01
Eliminar registros de un archivo xml jgutti Varios 0 25-05-2004 22:51:38
Eliminar Registros Duplicados ? Jvilomar Firebird e Interbase 14 16-03-2004 22:14:35
Eliminar páginas sin registros en detalle Tomás Impresión 11 30-10-2003 21:14:45
Eliminar algunos registros con sql miguelb SQL 4 19-09-2003 16:11:43


La franja horaria es GMT +2. Ahora son las 05:50:40.


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