USP_SIMPLEDATALIST_CREATEORUPDATE_CLR
Create or update simple data list with a CLR implementation
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@NAME | nvarchar(60) | IN | |
@DESCRIPTION | nvarchar(1000) | IN | |
@ASSEMBLYNAME | nvarchar(128) | IN | |
@CLASSNAME | nvarchar(128) | IN | |
@PARAMETERDEFXML | xml | IN | |
@STATICPARAMETERDEFINITION | xml | IN | |
@SPECXML | xml | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SPECUINAME | nvarchar(60) | IN |
Definition
Copy
CREATE procedure dbo.USP_SIMPLEDATALIST_CREATEORUPDATE_CLR
@ID uniqueidentifier = null output,
@NAME nvarchar(60),
@DESCRIPTION nvarchar(1000) = '',
@ASSEMBLYNAME nvarchar(128),
@CLASSNAME nvarchar(128),
@PARAMETERDEFXML xml,
@STATICPARAMETERDEFINITION xml = null,
@SPECXML xml,
@CHANGEAGENTID uniqueidentifier = null,
@SPECUINAME nvarchar(60) = N''
as
--this routine registers a CLR based simple list in the catalog
set nocount on;
declare @ExistingID uniqueidentifier;
if @CHANGEAGENTID is null exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @SPECUINAME is null
set @SPECUINAME = N'';
if @ID is null
begin
select @ExistingID = ID from dbo.SIMPLEDATALISTCATALOG where NAME = @NAME;
set @ID = @ExistingID;
end
else
select @ExistingID = ID from dbo.SIMPLEDATALISTCATALOG where ID = @ID;
declare @FUNCID uniqueidentifier;
declare @TRANSFUNCID nvarchar(40);
set @TRANSFUNCID=
@SPECXML.value(
'
declare namespace bbspec="bb_appfx_simpledatalist";
declare namespace c="bb_appfx_commontypes";
/bbspec:SimpleDataListSpec[1]/@TranslationFunctionID
'
,'nvarchar(40)');
if (@TRANSFUNCID is not null) AND (@TRANSFUNCID <> '00000000-0000-0000-0000-000000000000')
set @FUNCID=CAST(@TRANSFUNCID as uniqueidentifier);
if @ExistingID is null
begin
if @ID is null set @ID = NewID();
insert into dbo.SIMPLEDATALISTCATALOG (IMPLEMENTATIONTYPE, ID, [NAME], DESCRIPTION, ASSEMBLYNAME, CLASSNAME, PARAMETERDEFXML, STATICPARAMETERDEFINITION, SIMPLEDATALISTSPECXML, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, TRANSLATIONFUNCTIONCATALOGID, SPECUINAME)
values (1, @ID, @NAME, @DESCRIPTION, @ASSEMBLYNAME, @CLASSNAME, @PARAMETERDEFXML, @STATICPARAMETERDEFINITION, @SPECXML, @CHANGEAGENTID, @CHANGEAGENTID, getdate(), getdate(), @FUNCID, @SPECUINAME);
end
else
update dbo.SIMPLEDATALISTCATALOG
set
IMPLEMENTATIONTYPE=1,
[NAME] = @NAME,
DESCRIPTION = @DESCRIPTION,
ASSEMBLYNAME = @ASSEMBLYNAME,
CLASSNAME = @CLASSNAME,
PARAMETERDEFXML = @PARAMETERDEFXML,
STATICPARAMETERDEFINITION = @STATICPARAMETERDEFINITION,
SIMPLEDATALISTSPECXML = @SPECXML,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = getdate(),
TRANSLATIONFUNCTIONCATALOGID = @FUNCID,
SPECUINAME = @SPECUINAME
where ID = @ExistingID;
if @@error <> 0 return 3;
return 0;