enlace indirecto real


([N1] david cueva) #1

Que tal…lo que pasa es lo siguiente…necesito tener control de entradas, salidas, existencias de articulos por diciplina deportiva… en la tabla de movimientos tengo un enlace indirecto real hacia la tabla historica de existencias, esta tabla tiene dos indices diciplina+articulo que es clave unica y articulos, que si acepta repetidos…el detalle esta que al dar de alta un movimiento, se lansa un trigger antes de la alta para verificar si ya existe la combinacion diciplina+articulo…y si no existe pues darla de alta…si ya existe, no debe hacer nada…aqui es donde no encuentro el problema…si no existe, lo da de alta perfectamente, pero si ya existe, marca un error, de vcliente donde no lo puede dar de alta…le he puesto unos ensajes para ver el comportamiento y si esta reconociendo que existe, puesto que no entra al if donde se verifica, pero si no entra al if no hay ninguna instruccion que hacer y sin embargo marca el error…me puede decir alguien que puede estar pasando???

gracias!!!



([N3] chechualta) #2

Hola David:

cambia la condición de syslistsize = 0 por if !syslistsize

saludos


([N1] david cueva) #3

Sabes que ya probe con ambas opciones…tengo entendido que es lo mismo…y de cualquier modo sigue dando el mismo error…

igual agradezco el aporte!


([N3] pacosatu) #4

Hola david cueva.

El código del Trigger aparentemente está bien.
Falta ver más código.
El error se produce dando de Alta un Movimiento y tendrás que revisar otros Triggers de esta tabla o sus Índices únicos si los tiene.

Saludos
Paco Satué


([N1] david cueva) #5

Gracias Paco…la tabla existencias solo tiene dos indices…diciplina, y articulo. Diciplina contiene tabien a articulo y es de clave unica…articulo acepta repetidos…no hay mas trigers…solo una actualizacion que acumula el campo existencias…lo raro es que funciona bien si se da de alta un par diciplina+articulo que no existe…todo bien,…acumula existencias y todo…por eso es que no logro entender porque me da el error cuando si existe…si se supone que no debe pasar nada…

saludos!


([N2] jorge) #6

Hola David,

Yo creo que el problema lo tienes en el enlace, cuando se da de alta una nueva disciplina + articulo te da el enlace, pero cuando ya existe en la base de datos, lo deja en blanco, debes buscar si existe y asignarle el ya creado en la base de datos.

Un saludo.

Jorge


([N3] pacosatu) #7

Hola David.

Como ya te digo, la tabla Existencias está bien construida.

Lo que pasa es que el Error de Alta se produce en la Tabla Movimientos y es aquí donde debes revisar el código de los otros Triggers o Índices.

Saludos
Paco Satué


([N1] david cueva) #8

pues tienes razon…habia creado un indice de clave unica de articulos en la tabla movimientos…para poder ver la existencia de cada articulo sin repetidos…y eso estaba generando el error de alta de ficha…gracias!!!


([N3] pacosatu) #9

Hola David.

Me alegro.

Puedes votar la siguiente Idea, a ver si conseguimos de una vez tener un feedback de lo que realmente está fallando en el servidor. Se ahorrarían cientos de horas perdidas con el dichoso prueba y error al que nos tiene acostumbrado Velneo.

Saludos
Paco Satué