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 Buscar Temas de Hoy Marcar Foros Como Leídos

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.735
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 00:10:25.


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