Private Sub GrabarLogReportes()
Dim htDescripcion As New Hashtable
htDescripcion.Add("compania", cboCompania.SelectedValue)
htDescripcion.Add("anio", cboAnio.SelectedValue)
htDescripcion.Add("periodo", cboPeriodo.SelectedValue)
Generico.EscribeLog(servicio, "INEC", txtRuta.Text, htDescripcion)
End Sub
Dim htDescripcion As New Hashtable
htDescripcion.Add("compania", cboCompania.SelectedValue)
htDescripcion.Add("anio", cboAnio.SelectedValue)
htDescripcion.Add("periodo", cboPeriodo.SelectedValue)
Generico.EscribeLog(servicio, "INEC", txtRuta.Text, htDescripcion)
End Sub
----------------------------
Public Shared Sub EscribeLog(ByRef servicio As ServiciosADAM, ByVal reporte As String, ByVal ruta As String, ByVal htDescripcion As Hashtable)
Dim sql As String
Dim diccionario As IDictionaryEnumerator
Dim strBuilder As New System.Text.StringBuilder
Dim writerSettings As New System.Xml.XmlWriterSettings()
' Crear diccionario para poder ser recorrido en la generación de la cadena XML
diccionario = htDescripcion.GetEnumerator
' Crear cadena XML
With writerSettings
.Indent = True
.IndentChars = New String(" "c, 4)
End With
Dim writer As System.Xml.XmlWriter = System.Xml.XmlWriter.Create(strBuilder, writerSettings)
With writer
.WriteStartElement("Descripcion")
' Agregar los componentes del diccionario
While diccionario.MoveNext
.WriteElementString(diccionario.Key, diccionario.Value)
End While
.WriteEndElement()
End With
writer.Flush()
writer.Close()
' Eliminar la primera linea de la cadena XML
Dim cadenaSaltoLinea As String() = Split(strBuilder.ToString(), vbNewLine)
Dim descripcion As String
descripcion = String.Join(vbNewLine, cadenaSaltoLinea, 1, cadenaSaltoLinea.Length - 1)
' Llamar al procedimiento almacenado
Try
sql = "exec sp_hrv5_ec_log_reportes "
sql += "'" & reporte & "', "
sql += "'" & ADAM.Framework.Windows.ConexionActual.Usuario & "', "
sql += "'" & ruta & "', "
sql += "'" & descripcion & "'"
If (servicio.ejecutaConsulta(sql, ConexionActual.conexionBD) <> 1) Then
Throw New Exception("La generación del reporte no pudo ser registrada en el log de la base de datos.")
End If
Catch ex As Exception
MuestraErrorAdam(ex)
End Try
End Sub
Dim sql As String
Dim diccionario As IDictionaryEnumerator
Dim strBuilder As New System.Text.StringBuilder
Dim writerSettings As New System.Xml.XmlWriterSettings()
' Crear diccionario para poder ser recorrido en la generación de la cadena XML
diccionario = htDescripcion.GetEnumerator
' Crear cadena XML
With writerSettings
.Indent = True
.IndentChars = New String(" "c, 4)
End With
Dim writer As System.Xml.XmlWriter = System.Xml.XmlWriter.Create(strBuilder, writerSettings)
With writer
.WriteStartElement("Descripcion")
' Agregar los componentes del diccionario
While diccionario.MoveNext
.WriteElementString(diccionario.Key, diccionario.Value)
End While
.WriteEndElement()
End With
writer.Flush()
writer.Close()
' Eliminar la primera linea de la cadena XML
Dim cadenaSaltoLinea As String() = Split(strBuilder.ToString(), vbNewLine)
Dim descripcion As String
descripcion = String.Join(vbNewLine, cadenaSaltoLinea, 1, cadenaSaltoLinea.Length - 1)
' Llamar al procedimiento almacenado
Try
sql = "exec sp_hrv5_ec_log_reportes "
sql += "'" & reporte & "', "
sql += "'" & ADAM.Framework.Windows.ConexionActual.Usuario & "', "
sql += "'" & ruta & "', "
sql += "'" & descripcion & "'"
If (servicio.ejecutaConsulta(sql, ConexionActual.conexionBD) <> 1) Then
Throw New Exception("La generación del reporte no pudo ser registrada en el log de la base de datos.")
End If
Catch ex As Exception
MuestraErrorAdam(ex)
End Try
End Sub
BD
--------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE hrec_log_reportes(
[tipo_reporte] [varchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[fecha_emision] [datetime] NULL,
[usuario] [varchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ruta_emision] [varchar](200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[descripcion] XML NULL
--[descripcion] [varchar](500) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
--DROP TABLE [dbo].hrec_log_reportes
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE hrec_log_reportes(
[tipo_reporte] [varchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[fecha_emision] [datetime] NULL,
[usuario] [varchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[ruta_emision] [varchar](200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[descripcion] XML NULL
--[descripcion] [varchar](500) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
--DROP TABLE [dbo].hrec_log_reportes
------------------------------------------------------------
IF OBJECT_ID('sp_hrv5_ec_log_reportes') IS NOT NULL
DROP PROCEDURE sp_hrv5_ec_log_reportes
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_hrv5_ec_log_reportes]
(
@tipo_reporte VARCHAR(10),
@usuario VARCHAR(20),
@ruta_emision VARCHAR(200),
@descripcion XML
)
AS
INSERT INTO hrec_log_reportes
(
tipo_reporte,
fecha_emision,
usuario,
ruta_emision,
descripcion
)
VALUES
(
@tipo_reporte,
GETDATE(),
@usuario,
@ruta_emision,
@descripcion
)
GO
DROP PROCEDURE sp_hrv5_ec_log_reportes
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_hrv5_ec_log_reportes]
(
@tipo_reporte VARCHAR(10),
@usuario VARCHAR(20),
@ruta_emision VARCHAR(200),
@descripcion XML
)
AS
INSERT INTO hrec_log_reportes
(
tipo_reporte,
fecha_emision,
usuario,
ruta_emision,
descripcion
)
VALUES
(
@tipo_reporte,
GETDATE(),
@usuario,
@ruta_emision,
@descripcion
)
GO
No comments:
Post a Comment