Ver Mensaje Individual
  #24  
Antiguo 14-12-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Reputación: 0
coso Va por buen camino
Cita:
Si alguien tiene Delphi 5 o anterior y algo de tiempo para comprobar ésto definiendo e instalando una clase de componente de prueba que muestre su nombre como última sentencia del constructor, se lo agradecería.
No. El nombre se asigna desde el inspector de propiedades después del create. En el caso de asignarlo tu en el create, si se muestra.
Cita:
Con todo respeto, creo que fue algo precipitado ese comentario amigo Coso. Por lo que expliqué antes, me parece que fue un acierto del autor mover esa parte del código al método Prepare, que si bien no es una solución brillante, al menos hará más seguro al componente cuando lleve un nombre. El texto no parece tener una buena redacción, pero lo entiendo como "movimos esto a otro lugar, porque en este punto el componente no tiene nombre y por tanto el nombre del cursor sería solamente un número aleatorio que podría llegar a repetirse".
No Al, es muy cutre dejar un error de este tipo en componentes que van a ser internacionales y lo peor, a sabiendas. Si ya saben que se puede repetir el nombre, aun en casos concretos, no es dificil resolverlo antes que salte la excepción (por ejemplo con el try ... except que le puse de ejemplo, y es bastante mejorable). No esta de mas, por ejemplo, revisar todos los cursores existentes antes de intentar asignar ese nombre. Incluso, generar un numero a partir de todas las cifras de la fecha y hora, pues este siempre sera diferente.

Cita:
Sí garantizan números aleatorios, pero no únicos. Las probabilidades parecen ser bajas (1 en decenas de millones)
falso. El generador de numeros random de delphi es de pseudoaleatorios. Si se tiene algun randomize o randseed fijo en la aplicación, justo antes de crear un MDOQuery dinamicamente, se le repetira el numero en la misma iteración.

Sobre el hecho de que solo ocurra en una maquina, y esta sea la del cliente, es lo que mas me intriga. Pense si el nombre de la tabla pueda tener algo que ver, o incluso la tabla de codigos
Responder Con Cita