Procedimiento almacenado en firebird

Bueno os voy a dejar el código fuente de un procedimiento almacenado que se encarga de grabar los accesos de los usuarios a la aplicación.

Le pasamos tres campos de entrada y con estos datos inserta un registro en la tabla usu_accesos. Los datos de entrada son USUARIO, CLAVE y ERROR. Realiza un insert con el usuario SYSDBA, que es el root de firebird.

Procedimiento almacenado en firebird para grabar los accesos al sistema de gestión de la información

SET TERM ^ ;
CREATE PROCEDURE ACCESSOS_ALTA (
    USUARIO varchar(50),
    CLAVE varchar(50),
    ERROR varchar(100) )
AS
begin
  INSERT INTO usu_accesos (usuario, password ,error) values  (:usuario,:clave ,:error);
  when sqlcode -530 do
    exception error_accesos_alta;
end^
SET TERM ; ^

GRANT EXECUTE
 ON PROCEDURE ACCESSOS_ALTA TO  SYSDBA;

Ahora paso a escribir el código fuente en visual basic.net para la llamada al procedimiento almacenado.

Rutina en vb.net para llamar al procedimiento que graba los accesos

    Private Sub GrabarAccesoUsuario(Mensaje As String)

        '##############################################################################################################################
        '
        ' Inserta  registros en la tabla ACCESSOS_ALTA desde un procedimiento
        '
        '##############################################################################################################################
        Using FBconn As New FbConnection(ScSYSDBA)

            Using FBcmd As New FbCommand("ACCESSOS_ALTA", FBconn)
                Try
                    FBcmd.Connection.Open()
                    FBcmd.CommandType = System.Data.CommandType.StoredProcedure
                    FBcmd.Parameters.Add("@USUARIO", FbDbType.VarChar, 50)
                    FBcmd.Parameters("@USUARIO").Value = txtUsuario.Text
                    FBcmd.Parameters.Add("@CLAVE", FbDbType.VarChar, 50)
                    FBcmd.Parameters("@CLAVE").Value = txtClave.Text
                    FBcmd.Parameters.Add("@ERROR", FbDbType.VarChar, 100)
                    FBcmd.Parameters("@ERROR").Value = GetIPAddress() & Mensaje

                    FBcmd.ExecuteNonQuery()

                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
                FBcmd.Connection.Close()
            End Using
        End Using
    End Sub
' Devuelve la ip del cliente que realiza el acceso al sistema.
    Private Function GetIPAddress() As String
        Dim strmyHost As String = System.Net.Dns.GetHostName

        Dim strIPAddress = System.Net.Dns.GetHostEntry(strmyHost).AddressList(0).ToString()

        Return strmyHost & " - " & strIPAddress & " - "
    End Function

Scroll al inicio