Fecha Final : .26/05/2018
Hora Inicio: 12:40 AM
Hora Final: .4:50 AM
Horas invertidas(Minutos): 250
Colaboradores: Wilson Lopez, Oscar Cortés.
Actividad
En general, palmada para hacer la progra.
Crear paginas web
Configuracion
Recibos
Generar Stored Procedures
4:50 am Pausa para ir por pan:
-Oscar: Voy a esperar 15 minutos
Código:
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Procedure_main]
AS
BEGIN
DECLARE @FechaInicial date
DECLARE @FechaItera date
DECLARE @FechaFinal date
EXEC VaciarTablas
EXEC readXML_Abonados
EXEC readXML_TipoServicio
EXEC readXML_Municipalidades
EXEC readXML_Propiedades
EXEC readXML_ServiciosXpropiedad
set @FechaInicial = '2018/01/01'
set @FechaFinal = '2018/12/31'
set @FechaItera = @FechaInicial
While @FechaItera<= @FechaFinal
BEGIN
SET @FechaItera = DATEADD(day, 1,@FechaItera );
END
END
Actualizadion de stores procedures:
--|||StoreProcedures|||--
--Eliminar los datos de las tablas
CREATE PROCEDURE [dbo].[VaciarTablas]
AS
BEGIN
EXEC sp_MSForEachTable 'DISABLE TRIGGER ALL ON ?';
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL';
EXEC sp_MSForEachTable 'DELETE FROM ?';
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL';
EXEC sp_MSForEachTable 'ENABLE TRIGGER ALL ON ?';
EXEC sp_MSforeachtable @command1 = 'DBCC CHECKIDENT(''?'', RESEED, 0)'
END
GO
--Leer Abonados del XML
CREATE PROCEDURE [dbo].[readXML_Abonados]
AS
BEGIN
DECLARE @xml xml
DECLARE @hdoc int
BEGIN TRY
SELECT @xml = roow FROM OPENROWSET (BULK 'C:\data\SQL-Data-P2\Abonados.xml', SINGLE_BLOB) as Abonados(roow)
if (@xml IS NOT NULL)
begin
begin tran
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xml
SELECT * INTO #tmp_Abonados FROM OPENXML(@hDoc, 'XML/Abonado/dbo.Abonado')
WITH(
Nombre [nvarchar](50)
)
begin
INSERT INTO Abonado(Nombre) SELECT Nombre FROM #tmp_Abonados
end
DROP TABLE #tmp_Abonados
end
commit tran
return 1 --successful
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
return 0 --failed
END CATCH
END
GO
--Leer Tipos de servicio del XML
CREATE PROCEDURE [dbo].[readXML_TipoServicio]
AS
BEGIN
DECLARE @xml xml
DECLARE @hdoc int
BEGIN TRY
SELECT @xml = roow FROM OPENROWSET (BULK 'C:\data\SQL-Data-P2\Tiposervicio.xml', SINGLE_BLOB) as TipoServicio(roow)
if (@xml IS NOT NULL)
begin
begin tran
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xml
SELECT * INTO #tmp_TipoServicio FROM OPENXML(@hDoc,'XML/TipoServicio/dbo.TipoServicio')
WITH(
Nombre [nvarchar](50),
Valor float,
Variable int
)
begin
INSERT INTO TipoServicio(Nombre,Valor,Variante) SELECT Nombre,Valor,Variable FROM #tmp_TipoServicio
end
DROP TABLE #tmp_TipoServicio
end
commit tran
return 1 --successful
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
SELECT ERROR_MESSAGE() --MOSTRAR EL ERROR
return 0 --failed
END CATCH
END
GO
--Leer Municipalidades del XML
CREATE PROCEDURE [dbo].[readXML_Municipalidades]
AS
BEGIN
DECLARE @xml xml
DECLARE @hdoc int
BEGIN TRY
SELECT @xml = roow FROM OPENROWSET (BULK 'C:\data\SQL-Data-P2\Municipalidades.xml', SINGLE_BLOB) as Municipalidades(roow)
if (@xml IS NOT NULL)
begin
begin tran
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xml
SELECT * INTO #tmp_Municipalidades FROM OPENXML(@hDoc,'XML/Municipalidades/dbo.Municipalidades')
WITH(
Nombre [nvarchar](50),
DiaEmite int,
DiaLimite int,
TasaInteres float,
ValorMAgua float
)
begin
INSERT INTO Municipalidad(Nombre,DiaEmite,DiaLimite,TasaInteresMorosidad,ValorMCubicoAgua)
SELECT Nombre,DiaEmite,DiaLimite,TasaInteres,ValorMAgua FROM #tmp_Municipalidades
end
DROP TABLE #tmp_Municipalidades
end
commit tran
return 1 --successful
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
SELECT ERROR_MESSAGE() --MOSTRAR EL ERROR
return 0 --failed
END CATCH
END
GO
--Leer Propiedades del XML
CREATE PROCEDURE [dbo].[readXML_Propiedades]
AS
BEGIN
DECLARE @xml xml
DECLARE @hdoc int
BEGIN TRY
SELECT @xml = roow FROM OPENROWSET (BULK 'C:\data\SQL-Data-P2\Propiedades.xml', SINGLE_BLOB) as Propiedades(roow)
if (@xml IS NOT NULL)
begin
begin tran
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xml
SELECT * INTO #tmp_Propiedades FROM OPENXML(@hDoc,'XML/Propiedades/dbo.Propiedades')
WITH(
NumeroFinca int,
IdMunicipalidad int,
IdAbonado int,
Descripcion nvarchar(100),
Valor money,
CodigoPostal int
)
begin
INSERT INTO Propiedad(NumeroFinca,FK_Municipalidad,FK_Abonado,Descripcion,Valor,CodPostal)
SELECT NumeroFinca,IdMunicipalidad,IdAbonado,Descripcion,Valor,CodigoPostal FROM #tmp_Propiedades
end
DROP TABLE #tmp_Propiedades
end
commit tran
return 1 --successful
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
SELECT ERROR_MESSAGE() --MOSTRAR EL ERROR
return 0 --failed
END CATCH
END
GO
--Leer Servicios por propiedad del XML
CREATE PROCEDURE [dbo].[readXML_ServiciosXpropiedad]
AS
BEGIN
DECLARE @xml xml
DECLARE @hdoc int
BEGIN TRY
SELECT @xml = roow FROM OPENROWSET (BULK 'C:\data\SQL-Data-P2\Servicioxpropiedad.xml', SINGLE_BLOB) as ServiciosXpropiedad(roow)
if (@xml IS NOT NULL)
begin
begin tran
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xml
SELECT * INTO #tmp_ServiciosXpropiedad FROM OPENXML(@hDoc,'XML/ServicioXPropiedad/dbo.ServicioXPropiedad')
WITH(
NumeroFinca int,
IDServicio int,
FechaContratacion Date
)
begin
INSERT INTO ServicioXPropiedad (FK_Propiedad,FK_Servicio,FechaContratacionServicio)
SELECT NumeroFinca,IDServicio,FechaContratacion FROM #tmp_ServiciosXpropiedad
end
DROP TABLE #tmp_ServiciosXpropiedad
end
commit tran
return 1 --successful
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
SELECT ERROR_MESSAGE() --MOSTRAR EL ERROR
return 0 --failed
END CATCH
END
GO
---Lectura de consumo de agua
CREATE PROCEDURE readXML_Lectura @Fecha date
AS
BEGIN
DECLARE @xml xml
DECLARE @hdoc int
DECLARE @ID int
BEGIN TRY
SELECT @xml = roow FROM OPENROWSET (BULK 'C:\data\SQL-Data-P2\ConsumoAgua.xml', SINGLE_BLOB) as ConsumoAgua(roow)
if (@xml IS NOT NULL)
begin
begin tran
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xml
SELECT * INTO #tmp_ConsumoAgua FROM OPENXML(@hDoc, 'XML/ConsumoAgua/dbo.ConsumoAgua')
WITH(
NumeroFinca int,
FechaLectura date,
QM3 int
)WHERE FechaLectura = @Fecha
begin
INSERT INTO ConsumoAgua(FK_Propiedad,FechaLectura,Q) SELECT dbo.Propiedad.ID,#tmp_ConsumoAgua.FechaLectura,#tmp_ConsumoAgua.QM3
FROM #tmp_ConsumoAgua INNER JOIN
dbo.Propiedad ON #tmp_ConsumoAgua.NumeroFinca = dbo.Propiedad.NumeroFinca
end
DROP TABLE #tmp_ConsumoAgua
end
commit tran
return 1 --successful
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
return 0 --failed
END CATCH
END
Problemas
Problemas de conexión de la base de datos en computadora de escritorio.
No se logra solucionar, se decide trabajar en otra computadora. [12:43 AM]
El XML servicio por propiedad retorna el numero de propiedad para insertar en una tabla que lo que requiere es un fk de la propiedad.
Solución: Editar los XML reemplazando los numeros de propiedad por los numeros de ID de propiedad. [1:12AM]

No hay comentarios.:
Publicar un comentario