Triggers

31/10/2005 - 18:50 por Damián Eiff | Informe spam
Hola quiero crear un trigger para una tabla de la base de datos que
convierta 2 campos de texto de la misma en mayúsculas y elimine espacios en
blanco el comando seria UPPER(TRIM(columna), estoy tratando de pegar este
código en la ventana de la tabla en la parte de los insert pero me dice que
esta mal la sintaxis recurrí a la ayuda y me quedo menos claro todavia. si
alguien puede facilitar un ejemplo para crear desencadenadores seria
grandioso.

Gracias.

Preguntas similare

Leer las respuestas

#6 Damian Eiff
03/11/2005 - 01:33 | Informe spam
Eric gracias por la ayuda.
la verdad es que no se que ocurre pero el código este que me pasaste no me
funciona .
Estoy usando VFP 9, estoy usando dbf para las tablas.
Abro para modificar la estructura de la base de datos.
Voy a la solapa de table la 3era y hago click en el botón de triggers ->
insert triggers que abre el editor de expresiones(Expression Buldier) donde
coloco el codigo que me pasaste cambiando los nombres de las columnas en mi
caso por codigo y nombre.
Es una funcion no muy compleja pero queria algo simple para poder comprender
el funcionamiento de los triggers.

Desde ya gracias.




"Eric Diaz" escribió en el mensaje
news:
EXACTAMENTE
LINEA POR LINEA

"Damian Eiff" wrote in message
news:
este codigo es el que debo pegar en la ventana del generador de
expreciones?

replaace all columna1 with UPPER(TRIM(columna1))
replaace all columna2 with UPPER(TRIM(columna2))

cambiando el nombre de las columnas?

"Eric Diaz" escribió en el mensaje
news:
replaace all columna1 with UPPER(TRIM(columna1))
replaace all columna2 with UPPER(TRIM(columna2))

o por programcion algo sencillo como:

select 1
use mitabla

seletc 1
go top
do while not eof()
replaace columna1 with UPPER(TRIM(columna1))
replaace columna2 with UPPER(TRIM(columna2))
replaace columna3 with UPPER(TRIM(columna3))
skip
enddo


saludos


"Damián Eiff" wrote in message
news:
Corregi lo de los parentesis pero no funciona y lo que quiero hacer
es actualizar varios campos no solo uno
UPPER(TRIM(columna1)) UPPER(TRIM(columna2))

Que tengo que usar como separador?
Como le digo que es tal columna la que recibe la configuración o
programación?














Respuesta Responder a este mensaje
#7 Antonio Montagut
08/11/2005 - 08:52 | Informe spam
Tengo entendido de dentro de unTrigger de la misma tabla no puedes hacer
ninguan de las siguientes ordenes:
INSERT, UPDATE, REPLACE, DELETE etc. Ya que serían redundantes, por que
lanzarían una y otra vez el mismo Trigger.

Esto ami me funciona VARIABLE=UPPER(ALLT(VARIABLE))


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
#8 Guillermo Chauran
08/11/2005 - 23:01 | Informe spam
Damian, soy nuevo en este foro, lei tu Inquietud y los desencadenadores
funcionan, para UPDATE, INSERT, DELETE. Claro que te va a da error, eso
que esta escribiendo porque es una palabra reservada. Claro un triggers es
para algo mucho mas complicado.
Espero que con este ejemplo que T explique puedas introducirte en el mundo
de los triggers que son bastante portente.
1-Crea dos tablas (por supuesto que pertenezcan a una base de dato)
ejm. Clientes(id_cliente, nombre, direccion, telefono)
movimiento(Id_producto, descripcion, stock)

cuando este en la 1 tabla te vas a desdecadenadores. y vas a escribir un
nombre de un procedimiento(como las procedures en pascal) ejm.
_actualiza() esto le dice a fox que existe un procedimiento en triggers
almacenado.

con ctrl+y llena alguno datos en la primera tabla.

crea un formulario con con los campos de la primera tabla, pero no lo
relaciones en el control.source.
añade un commandbutton que al hacer clic añada estos datos.

INSERT INTO <nombredetabla> (id_cliente, nombre, direccion, telefono) ;
values ((thisform.txtid_cliente.value),
(thisform.txtnombre.value), thisform.txtdireccion.value),
(thisform.txttelefono.value))
Esto para actualizar la primera tabla.
Todavia no ejecutes esto porQ apenas tenemos 70% de nuestro trabajo abre
la primera tabla y en el la ventana de comando escribe modify procedure
T aparecera una ventana que dice procedimientos para triggers.

ahi vas a escribir un codico identificado con
PROCEURE _actualiza
INSERT INTO movimiento (id_producto, descripcion, stock) ;
values (10, 'Queso Guayanes', 100)

Que es lo que hace todo esto que cuando se cumple unas condiciones en una
tabla se dispara el Triggers. Por demas esta decir que el verifica que se
cumpla la primera opcion para luego hacer la segunda.

Espero que T sea de mucha utilidad.







PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
#9 Guillermo Chauran
08/11/2005 - 23:02 | Informe spam
Damian, soy nuevo en este foro, lei tu Inquietud y los desencadenadores
funcionan, para UPDATE, INSERT, DELETE. Claro que te va a da error, eso
que esta escribiendo porque es una palabra reservada. Claro un triggers es
para algo mucho mas complicado.
Espero que con este ejemplo que T explique puedas introducirte en el mundo
de los triggers que son bastante portente.
1-Crea dos tablas (por supuesto que pertenezcan a una base de dato)
ejm. Clientes(id_cliente, nombre, direccion, telefono)
movimiento(Id_producto, descripcion, stock)

cuando este en la 1 tabla te vas a desdecadenadores. y vas a escribir un
nombre de un procedimiento(como las procedures en pascal) ejm.
_actualiza() esto le dice a fox que existe un procedimiento en triggers
almacenado.

con ctrl+y llena alguno datos en la primera tabla.

crea un formulario con con los campos de la primera tabla, pero no lo
relaciones en el control.source.
añade un commandbutton que al hacer clic añada estos datos.

INSERT INTO <nombredetabla> (id_cliente, nombre, direccion, telefono) ;
values ((thisform.txtid_cliente.value),
(thisform.txtnombre.value), thisform.txtdireccion.value),
(thisform.txttelefono.value))
Esto para actualizar la primera tabla.
Todavia no ejecutes esto porQ apenas tenemos 70% de nuestro trabajo abre
la primera tabla y en el la ventana de comando escribe modify procedure
T aparecera una ventana que dice procedimientos para triggers.

ahi vas a escribir un codico identificado con
PROCEDURE _actualiza
INSERT INTO movimiento (id_producto, descripcion, stock) ;
values (10, 'Queso Guayanes', 100)

Que es lo que hace todo esto que cuando se cumple unas condiciones en una
tabla se dispara el Triggers. Por demas esta decir que el verifica que se
cumpla la primera opcion para luego hacer la segunda.

Espero que T sea de mucha utilidad.




PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida