Lectura de Archivos XML y Creacion de Tablas para la Migracion
Descripción:
Se inicio el proceso de llenar la base de datos con los archivos.
En esto no hubo mayor investigación ya que ambos estudiantes contabamos con los de los proyectos anteriores facilitando el trabajo y la busqueda en internet.
Problemas:
No se encontraron mayores problemas, nada mas de adaptación del codigo.
-----------------------------------------------------------------------------------------------------------------------
-- Verifica si la tabla existe, para eliminarla
IF OBJECT_ID('XMLDatosGenerales', 'U') IS NOT NULL
DROP TABLE XMLDatosGenerales;
GO
-- Crea una nueva tabla
CREATE TABLE XMLDatosGenerales
(
ID INT IDENTITY(1,1) PRIMARY KEY,
TipoOperacion NVARCHAR(MAX) NOT NULL,
Nombre NVARCHAR(MAX) NOT NULL,
FKLocalidad NVARCHAR(MAX) NOT NULL,
numeroAsiento NVARCHAR(MAX) NOT NULL,
Fecha NVARCHAR(MAX) NOT NULL,
Hora NVARCHAR(MAX) NOT NULL,
FKTipoShow NVARCHAR(MAX) NOT NULL,
Descripcion NVARCHAR(MAX) NOT NULL,
Precio NVARCHAR(MAX) NOT NULL
)
GO
-----------------------------------------------------------------------------------------------------------------------
-- Verifica si la tabla existe, para eliminarla
IF OBJECT_ID('XMLMovimientos', 'U') IS NOT NULL
DROP TABLE XMLMovimientos;
GO
-- Crea una nueva tabla
CREATE TABLE XMLMovimientos
(
ID INT IDENTITY PRIMARY KEY,
TipoOperacion NVARCHAR(MAX) NOT NULL,
FKAsiento NVARCHAR(MAX) NOT NULL,
FKTanda NVARCHAR(MAX) NOT NULL,
PreciodelAsiento NVARCHAR(MAX) NOT NULL,
FechaCompra NVARCHAR(MAX) NOT NULL,
NombreComprador NVARCHAR(MAX) NOT NULL,
MontoCancelado NVARCHAR(MAX) NOT NULL
)
GO
-----------------------------------------------------------------------------------------------------------------------
IF OBJECT_ID ( 'BT_SP_GetErrorInfo', 'P' ) IS NOT NULL
DROP PROCEDURE BT_SP_GetErrorInfo;
GO
-- Create procedure to retrieve error information.
CREATE PROCEDURE BT_SP_GetErrorInfo
AS
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
GO
-----------------------------------------------------------------------------------------------------------------------
-- Verifica si el store procedure existe, para eliminarlo
IF OBJECT_ID ( N'BT_SP_READ_DATOSGENERAlES', N'P' ) IS NOT NULL
DROP PROCEDURE BT_SP_READ_DATOSGENERAlES;
GO
CREATE PROCEDURE BT_SP_READ_DATOSGENERAlES
AS
BEGIN
BEGIN TRY
-- Declaracion de variables
DECLARE @XML xml
DECLARE @handle INT
DECLARE @PrepareXmlStatus INT
-- Lectura del archivo xml a una variable
SELECT @XML= BulkColumn
FROM OPENROWSET(BULK 'C:\Users\Edward\SkyDrive\SQL\Proyecto_3_2014\DatosGenerales.xml', SINGLE_BLOB) x;
EXEC @PrepareXmlStatus= sp_xml_preparedocument @handle OUTPUT, @XML
BEGIN TRANSACTION
-- Insertar los datos del documento a una tabla
INSERT XMLDatosGenerales
SELECT *
FROM OPENXML(@handle, '/Archivo/Fila', 2)
WITH (
TipoOperacion NVARCHAR(MAX),
Nombre NVARCHAR(MAX),
FKLocalidad NVARCHAR(MAX),
numeroAsiento NVARCHAR(MAX),
Fecha NVARCHAR(MAX),
Hora NVARCHAR(MAX),
FKTipoShow NVARCHAR(MAX),
Descripcion NVARCHAR(MAX),
Precio NVARCHAR(MAX)
)
-- Quitar el documento
EXEC sp_xml_removedocument @handle
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
SELECT * FROM XMLDatosGenerales xt;
RETURN 1;
END TRY
BEGIN CATCH
EXEC BT_SP_GetErrorInfo;
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH
END
GO
-----------------------------------------------------------------------------------------------------------------------
-- Verifica si el store procedure existe, para eliminarlo
IF OBJECT_ID ( N'BT_SP_READ_MOVIMIENTOS', N'P' ) IS NOT NULL
DROP PROCEDURE BT_SP_READ_MOVIMIENTOS;
GO
CREATE PROCEDURE BT_SP_READ_MOVIMIENTOS
AS
BEGIN
BEGIN TRY
-- Declaracion de variables
DECLARE @XML xml
DECLARE @handle INT
DECLARE @PrepareXmlStatus INT
-- Lectura del archivo xml a una variable
SELECT @XML= BulkColumn
FROM OPENROWSET(BULK 'C:\Users\Edward\SkyDrive\SQL\Proyecto_3_2014\Movimientos.xml', SINGLE_BLOB) x;
EXEC @PrepareXmlStatus= sp_xml_preparedocument @handle OUTPUT, @XML
BEGIN TRANSACTION
-- Insertar los datos del documento a una tabla
INSERT dbo.XMLMovimientos
SELECT *
FROM OPENXML(@handle, '/Archivo/Fila', 2)
WITH (
TipoOperacion NVARCHAR(MAX),
FKAsiento NVARCHAR(MAX),
FKTanda NVARCHAR(MAX),
PreciodelAsiento NVARCHAR(MAX),
FechaCompra NVARCHAR(MAX),
NombreComprador NVARCHAR(MAX),
MontoCancelado NVARCHAR(MAX)
)
-- Quitar el documento
EXEC sp_xml_removedocument @handle
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
SELECT * FROM dbo.XMLMovimientos xt;
RETURN 1;
END TRY
BEGIN CATCH
EXEC BT_SP_GetErrorInfo
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
RETURN @@ERROR*-1;
END CATCH
END
GO
Autores:
Edward Ovares Villegas 1.5 horas
Luis Diego Flores 1 hora

0 comentarios:
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio