![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
oki
Si lanzo esta sentencia me llama el Trigger en donde llamará al Proc. Almacenado que me regresará el último INDICE del Detalle y me actualizará este mismo. Esto es si la llave Primaria SUCURSAL y CLIENTE tienen valores, pero si juego a que el "dbGrid" intente a disparar el Trigger no lo logra hacer. Espero me haya explicado .. Gracias.
|
|
#2
|
||||
|
||||
la verdad no.Un trigger se dispara independientemente de donde venga la sentencia update. Precisamente esa es una de sus razones de ser, y de sus principales ventajas. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
||||
|
||||
|
oki
Estoy de acuerdo con usted, pero, corrigeme si estoy mal, si en un dbGrid lo enlazo a un ibDataset por medio de un DataSource, al abrir un Nuevo Registro en el dbGRid, manda a llamar la Instrucción Post+Insert, obviamente porque Graba el Registro Anterior e Inserta el Siguiente, entonces si manda la Instrucción "Post", porque no llama el Trigger si en la propiedad ModifiSQL del IbDataset tengo la sentencia SQL:
y en la Propiedad InsertSQL tengo Y el Trigger lo tengo Antes ó después de "Insertar" y "Modificar" y no me regresa nada. En el Trigger tengo esto: Y en el Procedimiento Almacenado tengo esto: Gracias por sus comentarios. Espero haberme explicado. |
|
#4
|
||||
|
||||
|
Hola Agag.
Creo que debes comenzar por separar las ideas. El dataset ejecutará la sentencia SQL apropiada (insert, update o delete) cuando se llame al método post. Cuando se llama al método Insert, Delete, Append o Edit, el dataset normalmente llamará primero a su método post si es necesario, antes de intentar realizar la acción propia del método. Todo esto ocurre en tu propia aplicación. Los triggers residen en la base de datos, de manera que cuando el motor recibe una sentencia insert/update/delete ejecuta los triggers especificados para la tabla, de acuerdo a su sentencia de creación (before/after) y la sentencia específica. Podes comprobar que el trigger se dispare y funcione correctamente conectandote via isql o ibExpert. Si el trigger funciona, entonces revisá la lógica de tu programa en delphi. Si no funciona, entonces revisá la lógica del trigger. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
||||
|
||||
|
oki
Entonces en el dbGrid, cuando se inserta un registro el ibDataset manda a llamar su método Insert, pero no manda al motor de la base de datos la sentencia "INSERT INTO..", estoy mal????
Muchas Gracias por sus Respuestas. |
|
#6
|
||||
|
||||
|
ahora ya no.
![]() ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#7
|
||||
|
||||
|
oki
oki
Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|