Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   IndexFieldNames, problema!!1 (https://www.clubdelphi.com/foros/showthread.php?t=11124)

erfedecai 06-06-2004 21:30:45

IndexFieldNames, problema!!1
 
Buenas, a ver, tengo un problemilla. Por lo visto cuando edito el indexfieldname de un TTable a un campo varchar para que me lo ordene y pueda hacer busqueda sobre ese indice me duplica las filas de forma basta. En cambio, si establezco el indice a un campo entero por ejemplo me funciona bien. Que podría hacer para que no me duplicase las filas????

Gracias de antemano!!!

__marcsc 06-06-2004 22:37:55

Hola,

me parece muy raro eso que dices que te duplica las filas... Cambiar esta propiedad solo afecta a como se ordena la tabla en la caché local... SI te duplica registros es que algo más está pasando.

Dices que utilizas TTable... Estás utilizando Paradox? No puede ser que tengas los índices corruptos? Has probado a reconstruir la tabla? Has verificado la propiedad RecordCount antes y después de cambiar el índice? :confused:

Paoti 06-06-2004 23:32:39

Hola!

no entendi muy bien tu duda compañero!

pero puedes checar si tu campo que usas en indexfieldName tiene asociado un indice.... despues trata de hacer un TTABLE.Refresh




que estes muy bien.... y si sigue sin funcionar, platicanos mas tu duda!!!!




Nos vemos

erfedecai 06-06-2004 23:34:55

Si, muy raro
 
Estoy trabajando sobre interbase y como motor el BDE (aunque sé que da muchos problemas con la caché) Todo lo que dices lo he hecho, menos eso último de recount...., no se qué, que no se lo que es, pero vamos, sigue fallando. Me he dado cuenta de que falla al establecer el indice activo porque si comento "Data->TClientes->IndexFieldNames="NOMBRE";" (Data es el módulo de datos) no se duplica. Pero también me he creado una pequeña base con campos a los que establecia el indice (uno varchar(60) que es el que fallaba, y otro varchar(11) que no falla) y no falla. Así que estoy hecho un lio y temblando como un flan, porque el susodicho programa es para un proyecto final, así que ya no sé.

Pero vamos, seguiré investigando

Un saludo

erfedecai 06-06-2004 23:37:54

Aun refrescando
 
Que va amigo, ni refrescando ni nada, esto no tira ni de cachondeo.

Gracias por preocuparos, un saludo :D :D :D

__marcsc 06-06-2004 23:48:42

Hola,

no estoy seguro de haber entendido lo que me decías. Si no entendiste lo de RecordCount, esa es la propiedad que te devuelve el número de registros que hay en una Tabla. Verifica a ver si es el mismo número en ambos casos.

Más cosas. Dices que esto te pasa con una BD concreta. No será que los datos están repetidos pero que sólamente lo ves cuando tienes un índice por ese campo concreto? Imaginate que tienes

Código:

Id    Nombre
--    -------
1      Ambrosio
2      Manolo
.
..
98    Ambrosio
99    Manolo

Si ordenas por ID y tienes varios registros, te costará ver que tienes nombres repetidos, mientras que si ordenas por nombre, lo verás en seguida. Es decir, es problema de los datos y no de la programación.

Puede ser?

erfedecai 07-06-2004 00:18:28

Pos no
 
Que va amigo, utilizo la herramienta ibconsole para verificar los datos y realizar sentencias sql (creación de base de datos, triggers, procedimientos...) Y veo que no ha duplicado nada, ej:

ID Nombre

1 Manolo
2 Luis

Si tengo esto en la base, al poner el indice activo en nombre me saldría:

1 Manolo
2 Luis
1 Manolo
2 Luis

Pero ya no solo eso me fastidia, porque yo establezo el indice en nombre para hacer una busqueda incremental por nombre, no? , pero como tengo que hacerla por telefono también ...

ID Nombre Teléfono

1 Manolo 956252525
2 Luis 956263254

coloco el indice sobre teléfono y ahora si no me duplica. Cabe decir que en la base tengo un indice creado para Nombre, no fallará eso? :confused: :confused: :confused: No sé, pero me extraña que por teléfono funcione y para Nombre no, siendo los dos del mismo tipo, varchar(60) y varchar(11) (Nombre, teléfono)

Que opinais?

erfedecai 07-06-2004 13:04:20

¿Posible Fallo?
 
Buenas tardes compañeros, he estado mirando mi aplicación, y creo que he dado con la tecla. Al ir comparando todas las propiedades de los TTables que tengo insertados en mi DataModule, he comprobado que la tabla cuyos datos se duplican, tiene la propiedad StoreDefs a true, mientras que las 25 tablas restantes tienen dicha propiedad a false. No se si estare equivocado, pero es mucha casualidad que la unica tabla que se repite es Clientes, y tiene esta propiedad distinta a todos los demas objetos TTable.¿podria ser esta propiedad la causante de mi problema, y la que me duplicas los registros almecados en la tabla de Clientes? No estoy seguro, por eso os pido consejo. De todos modos lo probare a ver que ocurre.

Os mantendre informados.

Un saludo, y Gracias de antemano. ;)


La franja horaria es GMT +2. Ahora son las 09:13:42.

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