Files
DP44/DataPRO_sql/dbo.sp_DBImportGroup.StoredProcedure.sql

155 lines
8.3 KiB
MySQL
Raw Normal View History

2026-04-17 14:55:32 -04:00
<EFBFBD><EFBFBD>IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_DBImportGroup]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[sp_DBImportGroup]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_DBImportGroup]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_DBImportGroup] AS'
END
GO
ALTER PROCEDURE [dbo].[sp_DBImportGroup]
@Groups xml
,@errorNumber int output
,@errorMessage nvarchar(250) output
AS
BEGIN
set @errorNumber = 0
set @errorMessage = space(0)
declare @tTestObject table (
SerialNumber nvarchar(255)
,LastModifiedBy nvarchar(50)
,LastModified datetime
,Template nvarchar(255)
,LocalOnly bit
,ParentObject nvarchar(255)
,SysBuilt bit
,OrigSerialNumber nvarchar(255)
,OrigTemplate nvarchar(255)
,Embedded bit
,HardwareList xml
,Sensors xml
,ChannelSettings xml
,Processed bit)
insert into @tTestObject
select
t.x.value('(SerialNumber)[1]', 'nvarchar(255)')
, t.x.value('(LastModifiedBy)[1]', 'nvarchar(50)')
, t.x.value('(LastModified)[1]', 'datetime')
, t.x.value('(TemplateName)[1]', 'nvarchar(255)')
, t.x.value('(LocalOnly)[1]', 'bit')
, t.x.value('(ParentObject)[1]', 'nvarchar(255)')
, t.x.value('(SysBuilt)[1]', 'bit')
, t.x.value('(OriginalSerialNumber)[1]', 'nvarchar(255)')
, t.x.value('(OriginalTemplate)[1]', 'nvarchar(255)')
, t.x.value('(Embedded)[1]', 'bit')
, t.x.query('HardwareList')
, t.x.query('Sensors')
, t.x.query('ChannelSettings')
, 0
from @Groups.nodes('/Groups/TestObject') t(x)
while (Select Count(*) From @tTestObject Where Processed = 0) > 0
Begin
begin try
begin transaction tTestObject
declare @SerialNumber nvarchar(255)
,@LastModifiedBy nvarchar(50)
,@LastModified datetime
,@Template nvarchar(255)
,@LocalOnly bit
,@ParentObject nvarchar(255)
,@SysBuilt bit
,@OrigSerialNumber nvarchar(255)
,@OrigTemplate nvarchar(255)
,@Embedded bit
,@HardwareList xml
,@Sensors xml
,@ChannelSettings xml
,@TestObjectId int
select top 1
@SerialNumber = SerialNumber
,@LastModifiedBy = LastModifiedBy
,@LastModified = LastModified
,@Template = Template
,@LocalOnly = LocalOnly
,@ParentObject = ParentObject
,@SysBuilt = SysBuilt
,@OrigSerialNumber = OrigSerialNumber
,@OrigTemplate = OrigTemplate
,@Embedded = Embedded
,@HardwareList = HardwareList
,@Sensors = Sensors
,@ChannelSettings = ChannelSettings
from @tTestObject where Processed = 0
exec [dbo].[sp_TestObjectsUpdateInsert] @SerialNumber
,@LastModifiedBy
,@LastModified
,@Template
,@LocalOnly
,@ParentObject
,@SysBuilt
,@OrigSerialNumber
,@OrigTemplate
,@Embedded
,@TestObjectId output
,@errorNumber output
,@errorMessage output
if(@TestObjectId != 0)
begin
exec dbo.sp_DBImportGroupHardware @TestObjectId, @HardwareList, @errorNumber output , @errorMessage output
exec dbo.sp_DBImportGroupSensors @TestObjectId, @SerialNumber, @Sensors, @errorNumber output , @errorMessage output
exec dbo.sp_DBImportGroupChannelSetting @TestObjectId, @SerialNumber, @ChannelSettings, @errorNumber output , @errorMessage output
end
update @tTestObject set [Processed] = 1 where SerialNumber = @SerialNumber
commit transaction tTestObject
end try
begin catch
set @errorNumber = error_number()
set @errorMessage = error_message()
rollback transaction tTestObject
end catch;
end
END
GO