Problema con insercion, edicion y delete en catalogo y Trigger
Hola:
Les planteo mi problema, estoy manejando un catalogo para el cual he definido triggers de insercion, edicion y delete, el problema es que al hacer cualquiera de estas modificaciones en el catalogo delphi me manda el siguiente error: 'Informacion de columna de clave insuficiente o incorrecta' 'Demasiadas filas afectadas por la actualizacion' El catalogo sin trigger funciona adecuadamente, manejo una llave primaria del tipo identity, el problema a mi punto de vista es que al existir el trigger que modifica, edita y elimina varios registros de otra tabla, delphi detecta que hay mas de una sola modificacion lanzando ese error. Estoy usando arquitectura 3 capas; Mi cliente se conecta a un DataSetProvider ligado a un respectivo DataSet. Entre las opciones del DSP, esta habilitado la opcion de permitir actualizaciones en cascada, al igual que deletes en cascada. Una manita porfavor, que me falta configurar??? |
Hola
Habria que ver las sentencias sql que usas para hacer estos cambios. Si no se hacen especificas por el campo determinado el error esta en que no puede encontrar el dato correcto. Esto suele pasar por varios motivos. sql no adecuado. no hay un campo determinado No se usa where (donde) en el sql. No se recorre la tabla. Bueno esas son las razones que me acuerdo. Saludos |
Hola caral, te cuento que el detalle esta en los triggers, ya que si los quito, el catalogo opera adecuadamente.
EL funcionamiento del catalogo es en base a las instrucciones Dataset.edit, Dataset.insert, Dataset.post, Dataset.delete. Sin los triggers el catalogo opera correctamente, pero al añadirle los triggers al catalogo me arroja el error que mencione anteriormente. La forma en la que ahora lo he hecho funcionar es mediante un query, donde determino las modificaciones mediante codigo sql: 'insert into...', 'update ...', 'delete from...' de esta manera no tengo ningun tipo de error y el funcionamiento con los triggers es como yo lo necesito. La pregunta es... no se pueden manejar triggers directamente en una tabla cuando se delega al Dataset la operacion de insercion, edicion, y eliminacion de registros???? |
Hola
La verdad, No lo se, no se manejar a los gatitos. Esperemos a alguien que sepa. Contesto para poner el hilo arriba y que alguien mas te ayude. Saludos |
Y qué tal si pones el código? :)
|
Los eventos los tengo programados en botones:
Y en los eventos del ClientDataSet :
El problema no creo que sea esta parte, ya que sin el trigger en la tabla, funciona adecuadamente. Pero al agregar el trigger, me devuelve el error y no me actualiza la tabla. Este es el código de los triggers Un trigger de insercion que lo unico que hace es agregar registros a otra tabla. Código:
Código:
create trigger tg_d_categoria_forma |
Ya lo resolvi.
Puse la pripiedad ResolveToDataset a false en el DataSetProvider. Tan fácil como eso. Lamento la pérdida de tiempo. |
La franja horaria es GMT +2. Ahora son las 16:28:24. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi