USP_DATAFORMINSTANCE_CREATEORUPDATE_CLR

Create or update data form default instance with a CLR implementation

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@FORMNAME nvarchar(60) IN
@DESCRIPTION nvarchar(1000) IN
@FORMDEFXML xml IN
@TEMPLATEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@SPECUINAME nvarchar(60) IN

Definition

Copy


CREATE procedure [dbo].[USP_DATAFORMINSTANCE_CREATEORUPDATE_CLR]
    @ID uniqueidentifier = null output
    @FORMNAME nvarchar(60),
    @DESCRIPTION nvarchar(1000) = '',
    @FORMDEFXML xml,
    @TEMPLATEID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @SPECUINAME nvarchar(60) = N''

as

set nocount on;

declare @ExistingID uniqueidentifier;

if @SPECUINAME is null
    set @SPECUINAME = N'';

if @ID is null
    begin
      select @ExistingID = ID from dbo.DATAFORMINSTANCECATALOG where FORMNAME = @FORMNAME;
      set @ID = @ExistingID;
    end
else
    select @ExistingID = ID from dbo.DATAFORMINSTANCECATALOG where ID = @ID;

if @CHANGEAGENTID is null  exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;


if @ExistingID is null 

    begin
        if @ID is null set @ID = NewID();

        insert into dbo.DATAFORMINSTANCECATALOG (ID, FORMNAME, DESCRIPTION, FORMUIXML, DATAFORMTEMPLATECATALOGID, ADDEDBYID, CHANGEDBYID, SPECUINAME)
            values (@ID, @FORMNAME, @DESCRIPTION, @FORMDEFXML, @TEMPLATEID, @CHANGEAGENTID, @CHANGEAGENTID, @SPECUINAME);

    end

else

    update dbo.DATAFORMINSTANCECATALOG 
        set FORMNAME = @FORMNAME,
            DESCRIPTION = @DESCRIPTION
            FORMUIXML = @FORMDEFXML,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = getdate(),
            SPECUINAME = @SPECUINAME
        where ID = @ExistingID;

if @@error <> 0 return 1;

return 0;