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 28-08-2007
Shikanda Shikanda is offline
Miembro
 
Registrado: ago 2007
Posts: 36
Poder: 0
Shikanda Va por buen camino
Bucle infinito al intentar abrir un tableset

Hola a todos!

Tengo un pequeño problema que no termino de comprender, y esperaba que me pudieseis echar un cable. Tengo dos DBEdit, uno muestra el código de empleado y el otro el nombre, pero cada DBEdit recoge los datos de un tableset diferente. El código del empleado se recoge de un tableset que se llama UsuariosSistema y el nombre de un tableset Empleados que tiene como DataSource el tableset UsuariosSistema. Basicamente he hecho un copy&paste de otros casos iguales que hay dentro del mismo programa pero en este caso, cuando voy a ejecutar, se crea un bucle infinito entre dos lineas

Código Delphi [-]
procedure TDMUsuarios_Sistema.DSQUsuarios_SistemaDataChange(
  Sender: TObject; Field: TField);
begin
        XEmpleados.Close;
        XEmpleados.Open;
end;

hasta que termina por dar un Access Violation de tipo Write of Address.

No sé porqué me pasa esto. Todavía estoy aprendiendo mucho sobre Delphi y Firebird y seguro que es algo absurdo. Agradeceré toda la ayuda recibida
Responder Con Cita
  #2  
Antiguo 28-08-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Si haz hecho copy/paste de la tabla verifica que el evento OnDataChange de los dos no apunte al mismo lugar.

Si es así, supongo que ejecutará el Close y el Open de XEmplreados y luego, como se ha abierto empleados volverá a hacer lo mismo ...
Responder Con Cita
  #3  
Antiguo 29-08-2007
Shikanda Shikanda is offline
Miembro
 
Registrado: ago 2007
Posts: 36
Poder: 0
Shikanda Va por buen camino
Hola, duilioisola, gracias por responder a mi mensaje.

A ver si he entendido bien lo que me dices, te digo yo lo que veo aquí. La primera tabla (la de usuarios del sistema) no tiene ningun datasource y por tanto ningun metodo onDataChange. La tabla de empleados si tiene a esta tabla usuarios del sistema como datasource (he comprobado que si que estan bien hechas las referencias, a pesar del copy/paste) y, dentro de eso, el metodo onDataChange, que es el que os mostre en el comentario anterior. Los campos de ambas tablas estan bien editados y no se, por mucho que miro no le encuentro la falta. Al ejecutar, cierra XEmpleados y cuando va a abrirlo, vuelve al begin.

Bueno, en cualquier caso muchas gracias por el cable
Responder Con Cita
  #4  
Antiguo 29-08-2007
Shikanda Shikanda is offline
Miembro
 
Registrado: ago 2007
Posts: 36
Poder: 0
Shikanda Va por buen camino
Ya lo he solucionado!

Se ve que habia llamado al mismo método onDataChange desde las 2 tablas. Por eso se formaba el bucle. Tenias razón! Muchas gracias por la ayuda, todavía me queda mucho que aprender y con sitios como éste el camino se hace más facil

Un saludo a todos
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
bucle infinito emeceuy Varios 10 20-07-2007 20:28:55
Memoria Insuficiente al intentar abrir la BD?? URBANO Conexión con bases de datos 3 20-06-2007 21:17:13
Error de parametros al intentar abrir un archivo Word ilichhernandez OOP 7 20-05-2007 21:31:02
bucle dentro de un bucle Cosgaya Varios 2 06-06-2005 07:05:16


La franja horaria es GMT +2. Ahora son las 05:58:55.


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