La Web del Programador: Comunidad de Programadores
 
    Pregunta:  47197 - FALLó DESENCADENANTE
Autor:  Orlando Gómez
Tengo una BD sobre un proceso de Producción con 8 tablas.Una de estas se llama ENC_LOTE
(TABLA 1) y llama las Id(PK) de 5 de las tablas con sus respectivos campos PK (idop_mez, idop_mol, idop_sin, idop_fil, idop_sec) y estos a su vez siendo FK dentro de ENC_LOTE.

Ahora una de las tablas (llamemosla TABLA 7)se llama DESG_LOTE que tiene los campos no_lot y cla_prod (las dos FK) que esta unida a la tabla ENC_LOTE mediante num_lot PK y clave deproducto la extrae de la tabla PRODUCTO (TABLA8) mediante el campo cve_prod(PK). Mi duda realizo la integridad referencial y restringo todo excepto:
T.Primaria T.Secundaria Actual Eliminar Insertar
ENC_LOTE DESG_LOTE cascada restringir ignorar

Al momento que quiero ingresar registros mediante Ador de proyectos\selec tabla\Examinar\Ctrl+Y...marca "Falló el desencadenante".Si los agrego tecleando en la ventana de comandos Append se puede y no marca ningun error. El problema es que kiero importar una gran cantidad de datos y por este detalle no los puedo importar y seria muy tedioso insertarlos uno por uno.

  Respuesta:  ERICK TERAN
mira tal ves no capto tampoco el punto de fallo descencadenante porque no he visto ese error nunca en mis sistemas o cuando los desarrollo, si dices tu que el append si funciona desde la ventana comandos porque no mejor trataras y mandas los datos atraves de un .prg que realize el ciclo de mandar los datos que necesites? si atraves del append si se puede es muy seguro que al introducirlos mediante un .prg tambien se pueda porque lo que haces manualmente con un append es lo mismo que hara el .prg de forma automatica.
Yo siempre que voy a llenar una tabla con datos de otra tabla o de la misma, uso el SELECT ejemplo:
select * from nombre_tabla where nombre_del_ campo=condicion_ que debe_ de_ cumplir into table nombre de tabla temporal(cualquiera)
luego que ya creo la tabla con los datos necesarios haces esto
use nombre_tabla que_almacenara_los_datos
append from nombre_tabla_que_tiene_los_datos_que_introduciremos
y listo..
ejemplo del select mas explicito:
select * from clientes where edad=38 into table clientestemporal
select clientes2
append from clientestemporal
y listo