Visual Basic 6 usando Base de datos Firebird – 2 – Procedimiento Almacenado

En esta ocasión voy a agregar un primer Procedimiento Almacenado que va se va a encargar de Guardar o Modificar un Usuario.

¿Qué es un Procedimiento Almacenado (Procedure)?

Los stored procedures (procedimientos almacenados) son los equivalentes a las rutinas, procedimientos que se encargan de ejecutar una función especifica. Tal como lo hacíamos en Visual Basic con los procedimientos de guardar cumplen la misma función solo que acá se ejecutan en la misma base de datos.

Paso 1: Primer paso es conectar la base de datos para eso se da doble clic sobre ella, luego se da clic derecho en Procedures:

Como vemos en la Base de datos que se creo en la lección anterior luego de conectar la base de datos se procede a dar clic derecho en Procedures y Luego en New Procedure.

Paso 2: Nombre al procedimiento. normalmente en mi caso los nombro iniciando con PROC_ al principio luego el evento que va a realizar  y luego el nombre de la tabla afectada, en nuestro ejemplo la tabla se llama USUARIO, el nombre quedaría de la siguiente manera PROC_GUARDAR_USUARIO. Para que uso este formato para poder localizarlo fácilmente cuando se tengas muchos procedimiento.

Paso 3: Parámetros de Entrada y de Salida. En esta parte determinamos que variables va a recibir el procedimiento y su tipo de dato. Para eso en la pestaña Input damos clic derecho y Append  para agregar el parámetro de la misma manera con los demás. Luego hacemos lo mismo en la pestaña Output que son los parámetros de salida si los tiene.

Como se ve en la imagen el procedimiento recibe 2 parámetros y el USUARIO ID puede ser NULL pero Nombre No.  No tenemos parámetros de salida. los parámetros de entrada inician con E_ y los de salida S_

Paso 3: Programar el proceso de guardado.

BEGIN
  /* Procedure body */
  
   UPDATE
      USUARIO
   SET
      NOMBRE = :E_NOMBRE
   WHERE
      USUARIO_ID = :E_CODIGO;
      
  /* si no se actualiza se procede a insertar*/
  IF (ROW_COUNT = 0) THEN
    INSERT INTO USUARIO (USUARIO_ID, NOMBRE)VALUES (:E_CODIGO, :E_NOMBRE);
      
  SUSPEND;
  
END

El procedimiento inicia con un BEGIN y termina con un END dentro va el código de actualizar primeramente los parámetros se pasan después de dos puntos en el ejemplo los dos parámetros son: :E_NOMBRE y :E_CODIGO 

en nuestro caso se hace primero el procedimiento de actualización basado en el código si la consulta no actualiza hay una variable llamada ROW_COUNT que retorna UNO (1) si hizo la actualización y sino devuelve CERO (0).

por eso se utiliza el condicional que valida si se actualizo sino no actualiza ( IF (ROW_COUNT = 0) THEN ) se precede a insertar el registro.

Algo que me di cuenta depues de buscar porque me daba error es que el IF no lleva END simplemente las líneas que van dentro deben finalizar con punto y coma.

 

IF (ROW_COUNT = 0) THEN 
    INSERT INTO USUARIO (USUARIO_ID, NOMBRE)VALUES (:E_CODIGO, :E_NOMBRE);

Luego de terminar el código del procedimiento se procede a compilar para saber si hay errores y luego a ejecutar.

Luego de compilar se procede a Ejecutar para probar que funcione bien.

Como se ve en la imagen se hace la prueba de guardado, se llena el parámetro E_NOMBRE, E_CODIGO queda NULL ya que en la base de datos lo tenemos como Auto numérico. Luego damos clic en OK.

Para verificar que se guardo vamos a la tabla USUARIO y Actualizamos para ver si se agrego el registro.  Para ver los datos debemos irnos a la pestaña Data.

Luego de haber probado que tanto la inserción como la modificación funcionen pasamos a Visual Basic para llamar al procedimiento.

Creo un procedimiento en un modulo de Visual Basic del proyecto que se hizo en la lección anterior y queda de la siguiente manera:

Sub Guardar_Cliente(Codigo As String, Nombres As String)
    On Error GoTo error
    If Codigo = "" Then
       sql = "execute procedure PROC_GUARDAR_USUARIO(null, '" & Nombres & "')"
    Else
       sql = "execute procedure PROC_GUARDAR_USUARIO(" & Codigo & ", '" & Nombres & "')"
    End If
    
    
    ConexionADO.Execute sql
    MsgBox "Usuario Guardado", vbInformation, "Guardar"
    Exit Sub
error:
    MsgBox Err.Description, vbCritical, "Error al guardar el cliente"
End Sub

execute procedure son los parámetros para llamar el Procedimiento de la base de datos.

Al dar clic en Guardar se llama a el procedimiento Guardar_Cliente y esta al procedimiento de la base de datos.

En el siguiente video explico todo paso a paso:

 


Puedes escribirme a mi correo: luisfermartinezricardo@gmail.com

Puedes escribirme por Telegram: @elmejorb

Puedes unirte a mi grupo de Telegram: Grupo Programar Es Facil

Suscríbete a mi canal de Youtube: https://www.youtube.com/ProgramarEsFacil

Total Page Visits: 5007 - Today Page Visits: 2

Deja una respuesta