Entrada 4 3 de setiembre 2018
Se trabaja por 6 horas, donde se trabaja en la carga de datos basicos para la simulacion, estos se concluyen. Luego de haber logrado una lectura existosa del xml se empieza a procesar datos y a insertarlos en las tablas respectivas.
Se tuvo errores en casos como el siguiente:
SET @XMLAdmin = (SELECT * FROM OPENROWSET(BULK 'C:\Users\Lenovo\Desktop\xml\Administrador.xml', SINGLE_BLOB) AS data)
--se prepara un handler y los prepare
DECLARE @handle INT
DECLARE @PrepareXmlStatusAD INT
-- se realiza el handling de los xml
EXEC @PrepareXmlStatusAD= sp_xml_preparedocument @handle OUTPUT, @XMLAdmin
--Se termina cargar la variable del XML
--Se declaran variables tabla para iterar por los datos
DECLARE @TAdministrador table (sec int identity(0,1), id int, nombre nvarchar(50), DocId varchar(50), passwrd nvarchar(50))
--se insertan los valores de los xml dentro de las variables tabla
INSERT @TAdministrador (id, nombre, DocId, passwrd)
SELECT id, nombre, valorDocId, contrasenna
FROM OPENXML(@handle, '/dataset/Administrador') WITH (id int, nombre varchar(50) , valorDocId varchar(50), contrasenna varchar(50))
INSERT @TTipoEvento (id, nombre, descripcion)
SELECT id, nombre, descripcion
FROM OPENXML(@handle, '/dataset/TipoEvento') with (id int, nombre varchar(50), descripcion varchar(100))
Pues el @handler solo nos permitia leer un xml a la vez, por lo que se tuvo que crear nuevos queries para que funcionen por separado:
DECLARE @XMLtipoEventos xml
SET @XMLtipoEventos = (SELECT * FROM OPENROWSET(BULK 'C:\Users\Lenovo\Desktop\xml\TipoEvento.xml', SINGLE_BLOB) AS data)
DECLARE @handle INT
DECLARE @PrepareXmlStatusEV INT
EXEC @PrepareXmlStatusEV= sp_xml_preparedocument @handle OUTPUT, @XMLtipoEventos
DECLARE @TTipoEvento table (sec int identity(0,1), id int, nombre nvarchar(50), descripcion varchar(100))
INSERT @TTipoEvento (id, nombre, descripcion)
SELECT id, nombre, descripcion
FROM OPENXML(@handle, '/dataset/TipoEvento') with (id int, nombre varchar(50), descripcion varchar(100))
DECLARE @loTE int, @hiTE int, @idTE int, @nombreTE varchar(50), @DescripcionTE varchar(100)
SELECT @loTE = min(sec), @hiTE = max(sec)
FROM @TTipoEvento
WHILE @loTE<= @hiTE
BEGIN
SELECT @idTE = TE.id, @nombreTE = TE.nombre, @DescripcionTE = TE.descripcion
FROM @TTipoEvento TE
WHERE TE.sec = @loTE
INSERT dbo.tipoEventos(id,nombre,descripcion)
VALUES(@idTE,@nombreTE,@DescripcionTE)
SET @loTE = @loTE + 1
END
Con esto la carga de valores basicos se logro y se prosiguio con el script de simulacion.
Con el trabajo de este dia se aprendio a manejar las variables tabla y el pre-procesado de datos.
Se trabaja por 6 horas, donde se trabaja en la carga de datos basicos para la simulacion, estos se concluyen. Luego de haber logrado una lectura existosa del xml se empieza a procesar datos y a insertarlos en las tablas respectivas.
Se tuvo errores en casos como el siguiente:
SET @XMLAdmin = (SELECT * FROM OPENROWSET(BULK 'C:\Users\Lenovo\Desktop\xml\Administrador.xml', SINGLE_BLOB) AS data)
--se prepara un handler y los prepare
DECLARE @handle INT
DECLARE @PrepareXmlStatusAD INT
-- se realiza el handling de los xml
EXEC @PrepareXmlStatusAD= sp_xml_preparedocument @handle OUTPUT, @XMLAdmin
--Se termina cargar la variable del XML
--Se declaran variables tabla para iterar por los datos
DECLARE @TAdministrador table (sec int identity(0,1), id int, nombre nvarchar(50), DocId varchar(50), passwrd nvarchar(50))
--se insertan los valores de los xml dentro de las variables tabla
INSERT @TAdministrador (id, nombre, DocId, passwrd)
SELECT id, nombre, valorDocId, contrasenna
FROM OPENXML(@handle, '/dataset/Administrador') WITH (id int, nombre varchar(50) , valorDocId varchar(50), contrasenna varchar(50))
INSERT @TTipoEvento (id, nombre, descripcion)
SELECT id, nombre, descripcion
FROM OPENXML(@handle, '/dataset/TipoEvento') with (id int, nombre varchar(50), descripcion varchar(100))
Pues el @handler solo nos permitia leer un xml a la vez, por lo que se tuvo que crear nuevos queries para que funcionen por separado:
DECLARE @XMLtipoEventos xml
SET @XMLtipoEventos = (SELECT * FROM OPENROWSET(BULK 'C:\Users\Lenovo\Desktop\xml\TipoEvento.xml', SINGLE_BLOB) AS data)
DECLARE @handle INT
DECLARE @PrepareXmlStatusEV INT
EXEC @PrepareXmlStatusEV= sp_xml_preparedocument @handle OUTPUT, @XMLtipoEventos
DECLARE @TTipoEvento table (sec int identity(0,1), id int, nombre nvarchar(50), descripcion varchar(100))
INSERT @TTipoEvento (id, nombre, descripcion)
SELECT id, nombre, descripcion
FROM OPENXML(@handle, '/dataset/TipoEvento') with (id int, nombre varchar(50), descripcion varchar(100))
DECLARE @loTE int, @hiTE int, @idTE int, @nombreTE varchar(50), @DescripcionTE varchar(100)
SELECT @loTE = min(sec), @hiTE = max(sec)
FROM @TTipoEvento
WHILE @loTE<= @hiTE
BEGIN
SELECT @idTE = TE.id, @nombreTE = TE.nombre, @DescripcionTE = TE.descripcion
FROM @TTipoEvento TE
WHERE TE.sec = @loTE
INSERT dbo.tipoEventos(id,nombre,descripcion)
VALUES(@idTE,@nombreTE,@DescripcionTE)
SET @loTE = @loTE + 1
END
Con esto la carga de valores basicos se logro y se prosiguio con el script de simulacion.
Con el trabajo de este dia se aprendio a manejar las variables tabla y el pre-procesado de datos.
Comentarios
Publicar un comentario