FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
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??? |
#2
|
||||
|
||||
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
__________________
Siempre Novato |
#3
|
||||
|
||||
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???? |
#4
|
||||
|
||||
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
__________________
Siempre Novato |
#5
|
||||
|
||||
Y qué tal si pones el código?
|
#6
|
||||
|
||||
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:
alter trigger tg_i_permiso_nivel on c_nivel after insert as --Al insertar un nuevo nivel de usuario se inserta la lista de formas en el proyecto delphi --Por default todos los permisos estan desactivados y habra que ir activandolos uno a uno. insert into nivel_permiso select (select niv_id from inserted), cfo_id, cat_id, 0, 0, 0, 0, 0 from c_forma insert into cat_permiso select (select niv_id from inserted), cat_id, 0 from c_categoria Código:
create trigger tg_d_categoria_forma on c_nivel INSTEAD OF delete as if not exists(select niv_id from control where niv_id=(select niv_id from deleted)) begin delete from cat_permiso where niv_id=(select niv_id from deleted) delete from nivel_permiso where niv_id=(select niv_id from deleted) delete from c_nivel where niv_id=(select niv_id from deleted) end else raiserror('No se puede eliminar el nivel de usuario porque esta actualmente asignado',16,1) Última edición por LuNaTk fecha: 30-03-2010 a las 03:14:29. Razón: Mal formato |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Trigger Before Delete, cancelar borrado | dardo | SQL | 3 | 20-06-2008 11:35:00 |
Trigger Before (Insert,update,delete)? | estebanx | MS SQL Server | 2 | 25-05-2006 15:58:19 |
problema con edicion de imagenes | 7pilas | Gráficos | 3 | 15-04-2006 00:41:54 |
problema de edicion en una Form | thrys | Conexión con bases de datos | 1 | 08-09-2005 01:52:28 |
Como puedo cambiar la propiedad de edicion y no edicion a un StringGrid1 | ctronx | Varios | 2 | 25-06-2004 23:10:19 |
|