156 lines
9.2 KiB
Transact-SQL
156 lines
9.2 KiB
Transact-SQL
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_SensorsSquibUpdateInsert]') AND type in (N'P', N'PC'))
|
||
DROP PROCEDURE [dbo].[sp_SensorsSquibUpdateInsert]
|
||
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_SensorsSquibUpdateInsert]') AND type in (N'P', N'PC'))
|
||
BEGIN
|
||
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_SensorsSquibUpdateInsert] AS'
|
||
END
|
||
GO
|
||
ALTER PROCEDURE [dbo].[sp_SensorsSquibUpdateInsert]
|
||
@Id INT = NULL,
|
||
@SerialNumber NVARCHAR (255),
|
||
@BypassCurrentFilter BIT,
|
||
@BypassVoltageFilter BIT,
|
||
@DelayMS FLOAT,
|
||
@DurationMS FLOAT,
|
||
@FireMode SMALLINT,
|
||
@IsoCode NVARCHAR (50),
|
||
@IsoChannelName NVARCHAR (255),
|
||
@UserCode NVARCHAR (50),
|
||
@UserChannelName NVARCHAR (255),
|
||
@MeasurementType SMALLINT,
|
||
@SquibOutputCurrent FLOAT,
|
||
@SquibToleranceLow FLOAT,
|
||
@SquibToleranceHigh FLOAT,
|
||
@LimitDuration BIT,
|
||
@DefineDelayInTest BIT,
|
||
@ArticleId NVARCHAR (50),
|
||
@Version INT,
|
||
@LastModified DATETIME,
|
||
@LastModifiedBy NVARCHAR (50),
|
||
@UserValue1 NVARCHAR (255),
|
||
@UserValue2 NVARCHAR (255),
|
||
@UserValue3 NVARCHAR (255),
|
||
@UserTags VARBINARY (MAX),
|
||
@Broken BIT,
|
||
@DoNotUse BIT,
|
||
@new_id INT OUTPUT,
|
||
@errorNumber INT OUTPUT,
|
||
@errorMessage NVARCHAR (255) OUTPUT
|
||
AS
|
||
BEGIN
|
||
SET NOCOUNT ON
|
||
SET @errorNumber = 0
|
||
SET @errorMessage = ''
|
||
|
||
DECLARE @SensorType AS TINYINT
|
||
DECLARE @SensorId AS INT
|
||
|
||
SELECT @SensorType = [TypeId] FROM [dbo].[SensorsType] WHERE [SensorType]='Squib'
|
||
|
||
SELECT @SensorId = A.[Id] from [dbo].[Sensors] AS A INNER JOIN [dbo].SensorsType AS B ON A.SensorType=B.TypeId WHERE B.SensorType='Squib' AND A.SerialNumber=@SerialNumber
|
||
|
||
IF( @SensorId IS NULL)
|
||
BEGIN
|
||
INSERT INTO [dbo].[Sensors] (SensorType, SerialNumber) VALUES (@SensorType, @SerialNumber)
|
||
SELECT @SensorId = SCOPE_IDENTITY()
|
||
SET @new_id = @SensorId
|
||
INSERT INTO [dbo].[SensorsSquib] (
|
||
[SensorId],
|
||
[BypassCurrentFilter],
|
||
[BypassVoltageFilter],
|
||
[DelayMS],
|
||
[DurationMS],
|
||
[FireMode],
|
||
[IsoCode],
|
||
[IsoChannelName],
|
||
[UserCode],
|
||
[UserChannelName],
|
||
[MeasurementType],
|
||
[SquibOutputCurrent],
|
||
[SquibToleranceLow],
|
||
[SquibToleranceHigh],
|
||
[LimitDuration],
|
||
[DefineDelayInTest],
|
||
[ArticleId],
|
||
[Version],
|
||
[LastModified],
|
||
[LastModifiedBy],
|
||
[UserValue1],
|
||
[UserValue2],
|
||
[UserValue3],
|
||
[UserTags],
|
||
[Broken],
|
||
[DoNotUse])
|
||
VALUES (
|
||
@SensorId,
|
||
@BypassCurrentFilter,
|
||
@BypassVoltageFilter,
|
||
@DelayMS,
|
||
@DurationMS,
|
||
@FireMode,
|
||
@IsoCode,
|
||
@IsoChannelName,
|
||
@UserCode,
|
||
@UserChannelName,
|
||
@MeasurementType,
|
||
@SquibOutputCurrent,
|
||
@SquibToleranceLow,
|
||
@SquibToleranceHigh,
|
||
@LimitDuration,
|
||
@DefineDelayInTest,
|
||
@ArticleId,
|
||
@Version,
|
||
@LastModified,
|
||
@LastModifiedBy,
|
||
@UserValue1,
|
||
@UserValue2,
|
||
@UserValue3,
|
||
@UserTags,
|
||
@Broken,
|
||
@DoNotUse)
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
SET @new_id = @SensorId
|
||
UPDATE [dbo].[SensorsSquib] SET
|
||
[BypassCurrentFilter]=@BypassCurrentFilter,
|
||
[BypassVoltageFilter]=@BypassVoltageFilter,
|
||
[DelayMS]=@DelayMS,
|
||
[DurationMS]=@DurationMS,
|
||
[FireMode]=@FireMode,
|
||
[IsoCode]=@IsoCode,
|
||
[IsoChannelName]=@IsoChannelName,
|
||
[UserCode]=@UserCode,
|
||
[UserChannelName]=@UserChannelName,
|
||
[MeasurementType]=@MeasurementType,
|
||
[SquibOutputCurrent]=@SquibOutputCurrent,
|
||
[SquibToleranceLow]=@SquibToleranceLow,
|
||
[SquibToleranceHigh]=@SquibToleranceHigh,
|
||
[LimitDuration]=@LimitDuration,
|
||
[DefineDelayInTest] = @DefineDelayInTest,
|
||
[ArticleId]=@ArticleId,
|
||
[Version]=@Version,
|
||
[LastModified] =@LastModified,
|
||
[LastModifiedBy]=@LastModifiedBy,
|
||
[UserValue1]=@UserValue1,
|
||
[UserValue2]=@UserValue2,
|
||
[UserValue3]=@UserValue3,
|
||
[UserTags]=@UserTags,
|
||
[Broken]=@Broken,
|
||
[DoNotUse]=@DoNotUse WHERE [SensorId]=@SensorId
|
||
END
|
||
END
|
||
IF(@@error != 0)
|
||
BEGIN
|
||
SET @errorNumber = error_number()
|
||
SET @errorMessage = error_message()
|
||
SET @new_id = @SensorId
|
||
END
|
||
|
||
GO
|