Uso de Stored Procedures con Active Record

edited noviembre 2008 in FAQ
Bueno, sigo con la duda <!-- s:?: --><img src="{SMILIES_PATH}/icon_question.gif" alt=":?:" title="Question" /><!-- s:?: --> , pero nadie responde <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( --> . ¿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 2:38
    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.
  • Bueno, sigo con la duda <!-- s:?: --><img src="{SMILIES_PATH}/icon_question.gif" alt=":?:" title="Question" /><!-- s:?: --> , pero nadie responde <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( --> . ¿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 2:38
    parece q no es muy complicado. busque en google procedimientos almacenados y llegé a está pagina.

    <!-- m --><a class="postlink" href="http://sentidoweb.com/2007/06/20/laboratorio-triggers-y-procedimientos-almacenados-en-mysql.php">http://sentidoweb.com/2007/06/20/labora ... -mysql.php</a><!-- m -->

    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`&#46;`sp_comisiones`$$
    CREATE PROCEDURE `kumbia`&#46;`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&#46;15);
    
    	select IFNULL(sum(importe),0) into suma from ventas where producto = 2 and vendedor = mivendedor;
    	SET micomision = micomision + (suma * 0&#46;1);
    
    	select IFNULL(sum(importe),0) into suma from ventas where producto = 3 and vendedor = mivendedor;
    	SET micomision = micomision + (suma * 0&#46;2);
    
    	select count(1)&gt;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`&#46;`tr_ventas_insert`$$
    
    CREATE TRIGGER `kumbia`&#46;`tr_ventas_insert` AFTER INSERT on `kumbia`&#46;`ventas`
    FOR EACH ROW BEGIN
    	call sp_comisiones(new&#46;vendedor);
    END$$
    
    DELIMITER ;
    


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

    y escriban esta url.
    <!-- m --><a class="postlink" href="http://localhost/kumbia/ventas">http://localhost/kumbia/ventas</a><!-- m -->

    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 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->



    suerte!!!
  • edited 2:38
    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.
  • Te dejo un ejemplo de como utilizarlo...

    <!-- m --><a class="postlink" href="http://www.assembla.com/flows/show/aCmTa0U9ar3zmmab7jnrAJ">http://www.assembla.com/flows/show/aCmT ... mmab7jnrAJ</a><!-- m -->
  • edited 2:38
    Excelente, gracias deivinson. Espero poder retribuir la ayuda que me han dado <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->.

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