Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con navegación de registros (https://www.clubdelphi.com/foros/showthread.php?t=57064)

andressanchez 04-06-2008 16:16:55

Problema con navegación de registros
 
Muy buenos dias foristas

Tengo una aplicación desarrollada en delphi 7, uso firebird 1.5, windows 2000. Me conecto a la base de datos con BDE. La aplicación esta instalada en varias sucursales, usamos una coneccion frame relay, para mantener las sucursales conectadas.

El problema consiste en que una de las sucursales al entrar a la aplicación y trata de navegar al último registro el programa se queda frizado, al igual cuando ejecuto un locate o cancel de un objeto ttable. Me resulta extraño de que solo sea una sola sucursal que tenga este tipo de problemas porque con otras no me pasa, inclusive esta es una sucursal con pocos registros. Estuve buscando a ver si era que me falta algun indice o si fuera algun problema de data pero lo veo todo bien.

La aplicacion es master-detail, cuando esta carga hago un filtro por el codigo de la sucursal en la tabla master.

esta es la estructura de las tablas.

Código SQL [-]
CREATE TABLE RELACIONCORRESPONDENCIA (
    REGISTRONO           INTEGER,
    IDUSUARIO            INTEGER,
    IDSUCURSAL           SMALLINT,
    FECHA                TIMESTAMP,
    FECHARECEPCION       TIMESTAMP,
    DESTINATARIO         VARCHAR(50),
    REMITENTE            VARCHAR(50),
    TIPOCORRESPONDENCIA  VARCHAR(1),
    DIRECCIONARCHIVO     VARCHAR(100),
    RECIBIDOPOR          VARCHAR(50),
    DESPACHADOPOR        VARCHAR(50),
    ESTATUS              VARCHAR(1),
    IDDEPARTAMENTO       SMALLINT,
    NUMEROCERTIFICADO    VARCHAR(15),
    SUCURSAL             SMALLINT
);
CREATE TABLE RELACIONCORRESPONDENCIADET (
    REGISTRONO         INTEGER,
    CLASEDOCUMENTO     VARCHAR(20),
    NUMERO             VARCHAR(10),
    DESCRIPCION        VARCHAR(100),
    LINEANO            SMALLINT,
    RECIBIDO           VARCHAR(1),
    NUMEROCERTIFICADO  VARCHAR(15)
);
 
/******************************************************************************/
/***                                Indices                                 ***/
/******************************************************************************/
CREATE INDEX FECHA_IDX3 ON RELACIONCORRESPONDENCIA (FECHA);
CREATE INDEX FECHA_RECEPCION ON RELACIONCORRESPONDENCIA (FECHARECEPCION);
CREATE INDEX IDSUCURSAL_IDX3 ON RELACIONCORRESPONDENCIA (IDSUCURSAL);
CREATE INDEX IDUSUARIO_IDX3 ON RELACIONCORRESPONDENCIA (IDUSUARIO);
CREATE INDEX NUMEROCERTIFICADO_IDX1 ON RELACIONCORRESPONDENCIA (NUMEROCERTIFICADO);
CREATE INDEX REGISTRONO_IDX3 ON RELACIONCORRESPONDENCIA (REGISTRONO);
CREATE INDEX LINEANO_IDX2 ON RELACIONCORRESPONDENCIADET (LINEANO);
CREATE INDEX NUMEROCERTIFICADO_IDX2 ON RELACIONCORRESPONDENCIADET (NUMEROCERTIFICADO);
CREATE INDEX REGISTRONO_IDX4 ON RELACIONCORRESPONDENCIADET (REGISTRONO, LINEANO);

Espero sus respuesta.

Mil gracias de antemano.

andressanchez 09-06-2008 18:58:30

Distinguidos foristas

Al parecer el problema que les presento es un tanto complejo.

Que me recomendarian en tal sentido?

andressanchez 11-06-2008 15:50:17

Distinguidos Colegas voy a tener que recurrir al metodo de borrado de registros a ver si con esto puedo solucionar el problema. Hasta el momento es lo único que se me ocurre, ya que aparentemente es un problema de data.

Luego les cuento como me fue.

andressanchez 17-06-2008 17:04:34

Buenos dias foristas

He tratado de solucionar este problema de diferentes maneras:

1) hice un backup-restore de la base de datos.
2)instale el sistema en otra maquina de la misma sucursal.
3)Borre registros.

Aun asi sigo teniendo problemas, realmente no se me ocurre nada mas que hacer.

¿Qué me recomiendan?

eduarcol 17-06-2008 17:24:52

podrias hacer esa misma consulta desde una interfaz para firebird, podria ser el IB-Expert, asi descartariamos el BDE

andressanchez 17-06-2008 18:53:10

Gracias por responder eduarcol

Acabo de hacer el query en ibexpert y corre sin problemas.

El query que hice fue el siguiente:

Código SQL [-]
select *
  from relacioncorrespondencia a, relacioncorrespondenciadet b
 where a.registrono = b.registrono
   and a.sucursal = 24

Lo que mas me extraña de todo esto, es que solamente ocurre esto en esa sucursal, las demas estan trabajando sin problemas.

eduarcol 17-06-2008 22:27:13

has leido el articulo Paradox en red de Valentin Sanchez?, quizas tengas algun problema de configuración, porq no reinstalas el BDE, o mejor aun por q no cambias la conexion a IBX

andressanchez 16-09-2008 20:53:15

encontre la solucion
 
Distinguidos foristas

Al utilizar el componente ttable este aunque hiciera el filtro por la sucursal me cargaba todos los registros que estan en la tabla. Me di cuenta porque le di un ttable.recordcount para saber cuantos registros habian despues del filtro y los compare con un select count(*) de dicha tabla filtrada por la sucursal en cuestion y la cantidad de registros del ttable eran mas que los del select count(*).

Para corregir el problema tuve que cambiar el ttable (master) y colocar un tquery y activarle a dicho componente la propieda requestlive = true.

Muchas gracias eduarcol por la ayuda.

Espero que este hilo les sirva para futuras referencias.


La franja horaria es GMT +2. Ahora son las 01:50:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi