Indices de clave unica y ¿Ya existe en indices de clave unica?


([N1] VictorGT) #1

Hola amigos:

Estoy haciendo pruebas para importar Localidades a vBase desde un fichero texto.
La importacion en principio sin problemas…

Pero, no soy capaz de evitar que me importe localidades repetidas. Y el caso es que
me gustaria hacerlo mediante indices de clave unica. Las altas la hago con “Crear
ficha en memoria” y “Alta de ficha”.

Las Localidades tienen un nombre, y un enlace a Region2 (en mi caso region2 son los
municipios de Asturias). Pues he definido un indice de clave unica en los campos
NOMBRE + ENLACE_A_REGION2 (no se pueden repetir nombres de localidades dentro del
mismo municipio).

Despues, leyendo la documentacion de Velneo, y dado que lo hago desde proceso,
pues claro, el indice no funciona (solo funciona en los formularios, como en la v6).
Vale, esto estaba previsto.

Pero se supone que tiene solucion utilizando “¿Ya existe en alguno de sus indices
de clave unica?” en los triggers anteriores al alta y a la modificacion.

Este es uno de mis problemas. Aparentemente “¿Ya existe en alguno de sus indices
de clave unica?” me devuelve siempre falso, aunque la localidad ya existe. Lo he
utilizado en el trigger anterior al alta de Localidad. Simplemente llamo al comando
con devolucion de dato en bOK, y despues uso un if sobre bOK para lanzar “set retorno
proceso no” si esta duplicado. He puesto mensajes para tracearlo y parece que bOk
siempre es falso… ¿Sugerencias? ¿Os habeis peleado con esto?.

Otro problema “menor” es que el vAdmin me lanza unos 40 mensajes “Run:FichaLee->Error
desconocido” al hacer la importacion. En principio parece que no tiene relacion con
el tema del trigger, parece mas causado por la propia importacion. Esto no lo he
mirado a fondo, pero ni idea por donde empezar. ¿Alguien sabe algo sobre este error?.

Y no, no he probado a simplemente buscar la localidad antes de dar el alta.
Eso ya supongo que funcionara, pero me interesa mas estudiar como funcionan
los indices de clave unica.

Gracias y perdon por el rollo.


([N1] aztecmexico) #2

En el proceso previo a la asignación del valor al campo, quita los espacios al inicio y final de los datos, pudiera ser que por eso no te detecte nombres repetidos.

 


([N1] VictorGT) #3

Ya he utilizado trimmedString() justo despues de trocear la linea de texto para limpiar los datos… Gracias de todas formas :wink: