ID Mayor a 65535


([N3] blanyi) #1

Buenos días comunidad.
Tengo en una tabla A maestra un campo ID con longitud 3 lo que me permitiría tener un valor máximo de 16,777,215 según la documentación de Velneo.
Tengo otra tabla B con un enlace maestro a la tabla anterior; la longitud del campo enlazado se coloca automáticamente y no hay forma de modificarlo.
El problema que se me presenta es que al registrar en la tabla B, en el campo enlazado un valor mayor a 65535 no me lo esta aceptando, no graba nada y lo peor es que no me manda mensaje de error por ningun lado, ni si quiera en el vadmin.
Es como si el campo enlazado al mestro fuera nada mas de longitud 2.
A alguien mas se le ha sucedido esto, pueden ayudarme por favor.
Gracias.
YIMY MORA ACONCHA


([N1] wikan) #2

Preguntas:

  • ¿ La tabla A es de un proyecto heredado el cual le has cambiado reciente la longitud del ID ?
  • ¿No está guardando el registro el B o simplemente no asigna contenido(hace referencia) al registro de la tabla A?

Si he visto, por pruebas locas, que cuando sobrepasas el límite el vAdmin muestra un mensaje diciendo algo tipo, “Reutilizando huecos” o algo así. Vamos que buscas ID’s disponibles para el alta.


([N3] blanyi) #3

Hola Manuel, gracias por tu interes en querer ayudar.
La tabla A no es heredada y hace mas de 3 meses que no le hago ningún cambio a la aplicación, todo venía funcionando bien hasta ahora.
En la tabla B si se genera el registro pero en el campo enlazado a la tabla maestra no guarda nada. Si el valor es menor o igual a 65535 si lo guarda el valor en el campo, pero si es mayor no lo guarda, lo deje en cero.
Utilizo Velneo 7.16.
Gracias.

YIMY MORA ACONCHA


([N1] wikan) #4

Como no tenemos vDataClient, pon algún edit que muestre el ID de la tabla B. Incluso en el trigger posterior a alta o modificación un mensaje con el campo enlazado.


([N3] blanyi) #5

Coloque un mensaje antes del alta y otro despues del alta en el formulario de alta/edicion y muestra el valor del campo enlazado en cero, lo mismo sucede con triggers anterior y posterior a alta o modificacion, presentan el valor del campo en cero. Es como si no aceptara el valor que se le asigna. Verifique también la variable con la que relleno y campo y la variable si tiene el valor correcto.

Gracias.

YIMY MORA ACONCHA


([N2] ramiro) #6

Buenas tardes:

Algo parecido me pasó una vez.

Haz la siguiente prueba:
Cambia el tipo del campo puntero a maestro (el que no acepta valores superiores a 65535). Ponlo numérico normal y mira a ver si tiene establecido limite para el valor máximo. Si lo tiene ponlo a cero. Después vuelve a convertirlo en puntero a maestro.

Aunque parezca mentira, esos límites NO VISIBLES y claramente erróneos siguen vigentes. En su momento casi me volvió loco…

Saludos. Ramiro


([N4] velavisual) #7

@todos

Os adjunto unos pantallazos realizados con la 7.17 para que veaís los ID asignados por proceso a las tablas plurales.

El tamaño de ID del maestro es 3.

Si alguien puede probar en la 7.16, podríamos ver si hay diferencias en el caso del ejemplo.

Gracias,






([N3] blanyi) #8

Hola Ramiro, buenos días.

Muy agradecido contigo y la gran ayuda que me diste, me salvaste de un fin de semana estresante. Hice lo que me recomendaste y encontré que efectivamente el campo tenia como límite máximo 65535, puse este limite en cero y luego volví a colocar el tipo de campo como enlace a meastro y listo, se solucionó mi problema.

El asunto es que no recuerdo haber establecido ese límite nunca, no entiendo que paso. Creo que es un bug que se debe corregir, porque si por alguna circunstancia tengo un tipo de campo numerico con longitud de 2, me dará como valor máximo 65535, pero si luego lo cambio a enlace a maestro, no tiene porque validar limites.

Dios te bendiga, y una vez mas gracias por tu ayuda.

YIMY MORA ACONCHA


([N2] ramiro) #9

Buenas tardes:

Me alegro que te haya resultado útil.
Informé del problema a soporte hace muchos, muchos meses (seguramente más de 12 y posiblemente más de 24).
Lo que no entiendo es que siga así…

Además de éste, existen otros efectos secundarios al cambio de propiedades de campos, pero esa es otra historia.

Saludos. Ramiro


([N1] wikan) #10

@Ramiro, posiblemente el típico Error función inexistente que suelte el vAdmin. Seguro que me deje algo por ahí en alguna propiedad, pero a ver quíen encuentra eso ahora.


([N2] ramiro) #11

Buenas:

Seguramente…
… y también muchos mensajes que salen en la barra de estado informando de campos inexistentes y cosas parecidas.

Son cosas que o bien no debieran detectarse como errores en ejecución o bien deberían ser detectadas como errores por el inspector.

Aunque lo mejor sería que el editor eliminara todas las propiedades no relevantes de un objeto (como por ejemplo los límites mínimo y máximo para un puntero a maestro, que era el problema inicial de este hilo)

Saludos. Ramiro