viernes, 4 de noviembre de 2016

Cargando datos de prueba

(2 horas)

El día de hoy se estuvieron cargando datos de prueba. Se hizo uso de la misma ciencia que se usó en el Proyecto Programado I. Se tomaron los Queries y se adaptaron para que funcionaran con estos datos de prueba.

Lo anterior da resultado al siguiente Query:

USE [II Proyecto - Banco]
GO

SET LANGUAGE Spanish

DECLARE @IPCLIENT VARCHAR(15)
SELECT @IPCLIENT = CONVERT(char(15), CONNECTIONPROPERTY('client_net_address'))

DECLARE @XMLwithOpenXML TABLE
(
ID INT IDENTITY PRIMARY KEY,
XMLData XML,
LoadedDateTime DATETIME
)

INSERT INTO @XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE()
FROM OPENROWSET(BULK 'C:\Users\Administrator\Desktop\Datos de Prueba - II Proyecto.xml', SINGLE_BLOB) AS x;

DECLARE @XML AS XML, @hDoc AS INT

SELECT @XML = XMLData FROM @XMLwithOpenXML

EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML

--Aqui empiezan los inserts
--Tipo Documento
INSERT INTO dbo.Tipo_Documento(Nombre)
SELECT NombreTipo
FROM OPENXML(@hDoc, 'Proyecto/Datos/TipoID')
WITH
(
NombreTipo varchar(50) 'Nombre'
)

--Tipo movimiento interes
INSERT INTO dbo.Tipo_Movimiento_Interes(Nombre)
SELECT NombreTipoMovim
FROM OPENXML(@hDoc, 'Proyecto/Datos/TipoMovInteres')
WITH
(
NombreTipoMovim varchar(50) 'nombre'
)

--Tipo movimiento estado cuenta
INSERT INTO dbo.Tipo_Movimiento_Estado_Cuenta(Nombre, Tipo)
SELECT NombreTipoMovimEs,
    CASE Tipo
        WHEN 'C' THEN 1
        WHEN 'D' THEN -1
    END
FROM OPENXML(@hDoc, 'Proyecto/Datos/TipoMovEC')
WITH
(
NombreTipoMovimEs varchar(50) 'nombre',
Tipo varchar(1) 'Tipo'
)

--Tipo Cuenta
INSERT INTO dbo.Tipo_Cuenta(Nombre, Saldo_Minimo, Multa_Saldo_Minimo, Tasa_Interes, Cargo_Servicio, Limite_Minimo_NoCobro, MaxRetirosXmes, PostIn, PostBy, PostDate)
SELECT NombreT, Saldo_Min, Multa , Tasa, Cargo, Limite, MaxRetirosXmes, @IPCLIENT, CURRENT_USER, CURRENT_TIMESTAMP
FROM OPENXML(@hDoc, 'Proyecto/Datos/TipoCuenta')
WITH
(
NombreT varchar(50) 'Nombre',
Saldo_Min money 'SaldoMinimo',
Multa money 'MultaSaldoMinimo',
Tasa float 'TasaInteres',
Cargo money 'CargoServicio',
limite money 'LimiteMinimoNoCobro',
MaxRetirosXmes int 'MaxRetirosXmes'
)

--Cliente
INSERT INTO dbo.Cuenta_Ahorrista(Fk_Tipo_Documento, Identificacion, Nombre, email, Activo, PostIn, PostBy, PostDate)
SELECT Fk_Tipo, Ident, NombreCli, emailCli, 'True', @IPCLIENT, CURRENT_USER, CURRENT_TIMESTAMP
FROM OPENXML(@hDoc, 'Proyecto/Datos/Cliente')
WITH
(
Fk_Tipo int 'FK_TipoID',
Ident int 'NumID',
NombreCli varchar(50) 'Nombre',
emailCli varchar(50) 'Email'
)

--Cuenta
INSERT INTO dbo.Cuenta(FK_Cuenta_Ahorrista, FK_Tipo_Cuenta, Fecha_Creacion, Saldo_Parcial, Fecha_Corte, Activo, PostIn, PostBy, PostDate)
SELECT Fk_Cuen,Fk_tipo, creacion, saldo, corte, 'True', @IPCLIENT, CURRENT_USER, CURRENT_TIMESTAMP
FROM OPENXML(@hDoc, 'Proyecto/Datos/Cuenta')
WITH
(
Fk_Cuen int 'FK_Cliente',
Fk_tipo int 'FK_TipoCuenta',
creacion date 'FechaCreacion',
corte int 'DiaCorte',
saldo money 'SaldoReal'
)

EXEC sp_xml_removedocument @hDoc

No hay comentarios:

Publicar un comentario