Procedimientos almacenados

Hola davsoft!
Otra vez necesito de un buen consejo.
He estado resolviendo el problema el cual hace las búsquedas por indices, ese ya casi esta, es solo cuestión de tiempo, ya que tengo casi toda la teoría. Y casi por que me hace falta entender ¿cómo funcionan los procedimientos almacenados en una base de datos o en tablas? He leído la teória pero no termino por entender. No se si tu me puedas ayudar diciéndome con tus palabras como se utilizan los procedimientos almacenados y un ejemplo y si tienen disparadores mucho mejor.
De antemano gracias.

1 Respuesta

Respuesta
1
Los procedimientos almacenados son funciones que están guardados en la propia base de datos, pueden recibir parámetros y manipularlos inclusive, por ejemplo puedes crear un procedimiento almacenado que reciba como parámetro el limite de crédito de un cliente y lo almacene en su tabla, con esto se ahorra mucha velocidad y ahorro en el trafico en la red, ya que puedes hacer consultas grandes y los resultados y procesos se ejecutan dentro del servidor, el ejemplo podría ser así:
CREATE PROCEDURE limite (IN xLimit INTEGER)
BEGIN
DECLARE obs CHAR(10);
IF xLimit = 0 THEN
SET obs = 'Sin limite';
ELSE
SET obs = 'Limite aprobado';
END IF;
INSERT INTO clientes set limite = xLimit;
END
Es un ejemplo sencillo, la creación de la variable OBS es ilustrativa, ya que no lo utilizamos para nada, pero con esto ya sabes como se inicia la variable y luego la bifurcación IF, bueno, hay muchas cosas que se pueden hacer con ellas, con respecto a los trigers o disparadores son mucho más interesantes, ya que reaccionan o se disparan cuando ocurren un evento en la base de datos (INSERT, DELETE UPDATE), por ej, siempre tenemos una tabla de contabilidad cabecera e items, en la cabecera tenemos el total del debe y el total del haber, ye el detalle las cuentas con los montos respectivos, puedes hacer un trigger que se dispare en cuando se actualice la tabla de detalle y que sume el debe y el haber para que luego actualice el total en la tabla cabecera, así no te preocupas de ese campo en tu programa, el motor de bases de datos lo hará cada vez que ocurra algún evento en la tabla detalle, es muy interesante verdad, disculpa pero el ejemplo es en mysql, yo trabajo con fox y mysql, por lo tango no se que base usas, pero no varían mucho las cosas.
ok, tu ejemplo si me convence, y si me quedo mucho más claro. Pero el codigo que escribes al insertar, yo utilizo
INSERT INTO clientes (campo1, campo2) Values (valor1, valor2)
Tu usas INSERT INTO clientes SET limite=xlimit
¿Cuál es la diferencia? ¿Cuál es mejor?
Disculpa la demora, ando con viajes, bueno, ambos cumplen una misma función, pero para mi es mucho más cómodo hacer de la forma que te expuse, por que, supongamos que tengas una tabla muy extensa, ya no es cómodo por que ya no recuerdas que campo pusiste en la posición 15 por ejemplo, con tablas pequeñas no hay problemas, entonces con la opción SET campo1=variable1 tienes un control total de la situación, por la comodidad nada más.
Ok, Una ultima para finalizar, ¿y usando set puedes varios campos?
Por decir:
INSERT INTO  cliente SET limite= xlimite, nombre=cname, domicilio=cdomi...
o se hace
INSERT INTO cliente SET limite=xlim
INSERT INTO cliente SET nombre= cname
o como utilizaria varios campos??
Ok, gracias davsoft
Justamente ese es el motivo por lo que yo uso, puedes usar muchos campos así como lo hiciste en tu ejemplo en la primera opción.
Van entre comas
insert into clientes set codigo=xCODI,nombre='Nombre', direccion=xDireccion, ....

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas