Ir al contenido


Foto

Manual de ZStoredProc


  • Por favor identifícate para responder
6 respuestas en este tema

#1 golf2009

golf2009

    Advanced Member

  • Miembros
  • PipPipPip
  • 99 mensajes

Escrito 02 febrero 2010 - 05:26

Hola a todos:
Trabajo con MySQL y ZEOS, y necesito un manual donde explique el ZStoredProc y los Trigger.
Desde ya muchas gracias
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 02 febrero 2010 - 06:30

Lamentablemente no hay documentación al respecto, pero, ¿qué necesitas hacer?, normalmente con un simple Query es más que suficiente para llamart tus procedimientos:



delphi
  1. ZQuery.Close;
  2. ZQuery.SQL.Text := 'Call Nombre_proc(var1, var2)';
  3. ZQuery.ExecSQL;



Saludos.
  • 0

#3 golf2009

golf2009

    Advanced Member

  • Miembros
  • PipPipPip
  • 99 mensajes

Escrito 03 febrero 2010 - 07:39

Enecumene: gracias por tu respuesta, pero el procedimiento
Nombre_proc(var1, var2) que pones de ejemplo, en el servidor donde lo defino y cómo.
Además quisiera saber de tu experiencia, si realmente varía el tiempo de respuesta de las consultas usando store procedure.
Desde ya muchas gracias
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 03 febrero 2010 - 08:15

Hola Golf2009, Nombre_proc(var1, var2) es el nombre del procedimiento con sus parámetros ya sea de entrada o salida, por ejemplo:



sql
  1. DELIMITER $$
  2. CREATE PROCEDURE total_empleados(OUT total INT) //parámetro de salida
  3.     BEGIN
  4.       SELECT COUNT(*) INTO total FROM Empleados;
  5.     END$$
  6. DELIMITER ;



que la llamarias de la siguiente forma:



delphi
  1. ZQuery.CLose;
  2. ZQuery.SQL.Text := 'call total_empleados('+total+')'; //total es una variable integer
  3. ZQuery.open;
  4.  
  5. lbTotal.Caption := IntToStr(Total); //mostramos el total



Ahora, sobre el asunto del rendimiento, por lógica, al ser el servidor de BD el que lo maneja todo pues hasta cierto punto es mucho mejor, pero siempre dependerá de cómo construyas tus procedimientos.

Más información de cómo crear tus procedimientos aquí

Saludos.

  • 0

#5 golf2009

golf2009

    Advanced Member

  • Miembros
  • PipPipPip
  • 99 mensajes

Escrito 03 febrero 2010 - 08:22

Nuevamente gracias por tu respuesta, pero el Código que va en el Servidor donde se define, en definitiva donde se graba donde va.

Saludos.

DELIMITER $$
CREATE PROCEDURE total_empleados(OUT total INT) //parámetro de salida   
BEGIN     
        SELECT COUNT(*) INTO total FROM Empleados;
END
$$DELIMITER ;

  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 03 febrero 2010 - 08:31

Los procedimientos se guardan en una tabla de la BD llamado mysql.proc, es recomendable no modificarlos directamente, es mejor hacerlo desde la consola o algún manejador de BD para MySQL como MySQL Query Browser o similar. Espero eso te sea de utilidad.

Saludos.
  • 0

#7 golf2009

golf2009

    Advanced Member

  • Miembros
  • PipPipPip
  • 99 mensajes

Escrito 04 febrero 2010 - 01:07

Gracias por tu respuesta:
Además te quería preguntar que versión de MySql usas, porque yo tengo la versión 4.1 y quiero instalar la 5.0 para trabajar con Stored Procedure  pero me da error al querer instalar saliendo un mensaje  que no puede iniciar el servicio de mysql ó error en el firewall personal.
Buscando por internet encontré varias versiones 5.1 , 5.1.43 , 5.5

Desde ya muchas gracias.
  • 0




IP.Board spam blocked by CleanTalk.