Ahora KumbiaPHP está en Slack!!

Si deseas contactar con nosotros y de forma rápida, estamos en Slack:

http://slack.kumbiaphp.com/

Uso de Stored Procedures con Active Record

edited noviembre 2008 in FAQ
Bueno, sigo con la duda :?: , pero nadie responde :( . ¿Cómo hago para utilizar Stored Procedures con Active Record?. Por ejemplo, si quiero actualizar un registro a través de un Procedimiento Almacenado.

Comentarios

  • edited noviembre -1
    yo me imagino q nadie responde por no lo han utilizado.
    si tuviera experiencia en esto ten por seguro q te responde, espero cuando logres solucionar tu problema y alguien pregunte puedas ayudarlo. son pocas las personas q tienen experiencia en esto.

    intentare de googlear. me imagino q = lo hiciste y vere como si puedo hacer algo.
  • edited noviembre -1
    "Jucem" said:
    Bueno, sigo con la duda :?: , pero nadie responde :( . ¿Cómo hago para utilizar Stored Procedures con Active Record?. Por ejemplo, si quiero actualizar un registro a través de un Procedimiento Almacenado.
    Pienso que deberias esperar un poco, todos tenemos apuros y creeme yo tengo muchisimos y aun asi me da tiempo de ayudarlos no todos utilizan procedimientos almacenados, estoy haciendo pruebas!!!

    Éxitos!!
  • edited noviembre -1
    parece q no es muy complicado. busque en google procedimientos almacenados y llegé a está pagina.

    http://sentidoweb.com/2007/06/20/labora ... -mysql.php

    es un triggers que ejecuta un procedimiento almacenado. solo hice un pequeño cambio en las tablas agrege el id.

    dejo los pasos a seguir.

    leean el ejemplo y copien los script q les pego.


    creen una base llamada kumbia


    create database kumbia;
    use kumbia;



    CREATE TABLE `comisiones` (
    `id` int(4) NOT NULL auto_increment,
    `vendedor` int(11) default NULL,
    `comision` float default NULL,
    PRIMARY KEY (`id`)
    )

    CREATE TABLE `ventas` (
    `id` int(4) NOT NULL auto_increment,
    `vendedor` int(11) default NULL,
    `producto` int(11) default NULL,
    `importe` float default NULL,
    PRIMARY KEY (`id`)
    )


    procediemiento almacenado

    DELIMITER $$
    DROP PROCEDURE IF EXISTS `kumbia`.`sp_comisiones`$$
    CREATE PROCEDURE `kumbia`.`sp_comisiones` (IN mivendedor INT)
    BEGIN
    DECLARE micomision INT DEFAULT 0;
    DECLARE suma INT;
    DECLARE existe BOOL;

    select IFNULL(sum(importe),0) into suma from ventas where producto = 1 and vendedor = mivendedor;
    SET micomision = micomision + (suma * 0.15);

    select IFNULL(sum(importe),0) into suma from ventas where producto = 2 and vendedor = mivendedor;
    SET micomision = micomision + (suma * 0.1);

    select IFNULL(sum(importe),0) into suma from ventas where producto = 3 and vendedor = mivendedor;
    SET micomision = micomision + (suma * 0.2);

    select count(1)>0 into existe from comisiones where vendedor = mivendedor;
    if existe then
    UPDATE comisiones set comision = comision+micomision where vendedor = mivendedor;
    else
    insert into comisiones (vendedor, comision) values (mivendedor, micomision);
    end if;
    END$$

    DELIMITER ;


    triggers q ejecuta el prosedimiento almacenado


    DELIMITER $$

    DROP TRIGGER `kumbia`.`tr_ventas_insert`$$

    CREATE TRIGGER `kumbia`.`tr_ventas_insert` AFTER INSERT on `kumbia`.`ventas`
    FOR EACH ROW BEGIN
    call sp_comisiones(new.vendedor);
    END$$

    DELIMITER ;



    despues se bajan el paquete kumbia.
    configuran la coneccion "archivo environment.ini"

    y escriban esta url.
    http://localhost/kumbia/ventas

    se creará un formulario estandar de ventas al insertar datos en la tabla ventas se ejecutara un triggers y llamara al procediemiento almacenado,


    espero q esto sea de utilidad. y queda como un FAQ :D



    suerte!!!
  • edited noviembre -1
    Muchas Gracias Fidelio, me parece muy interesante el artificio que publicaste, y lamento que hayan interpretado mi consulta como impaciencia, está claro que todos tenemos cosas que hacer, bueno cualquier aporte que pueda hacer, lo haré con gusto. Saludos a todos.
  • edited noviembre -1
    Te dejo un ejemplo de como utilizarlo...

    http://www.assembla.com/flows/show/aCmT ... mmab7jnrAJ
  • edited noviembre -1
    Excelente, gracias deivinson. Espero poder retribuir la ayuda que me han dado :D.

    Saludos.
  • edited noviembre -1
    seguro esperamos que cuando entiendas hagas un how to xD
Sign In or Register to comment.