USP_DATAFORMTEMPLATE_EDIT_DATABASEMAILSETTINGS_2

The save procedure used by the edit dataform template "Email Alerts Settings Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ENABLED bit IN Enabled
@PROFILENAME nvarchar(128) IN SQL Server Database Mail Profile
@APPROOTURL nvarchar(1024) IN Application URL root
@SELECTEDDATABASE nvarchar(128) IN Selected database
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@APPLICATIONLINKFORMATCODE tinyint IN Application link format

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_DATABASEMAILSETTINGS_2]
(
  @ENABLED bit,
  @PROFILENAME nvarchar(128),
  @APPROOTURL nvarchar(1024),
  @SELECTEDDATABASE nvarchar(128),
  @CHANGEAGENTID uniqueidentifier = null,
  @APPLICATIONLINKFORMATCODE tinyint
)
as begin
  declare @CURRENTDATE datetime;
  declare @ISHOSTED bit;

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

  set @CURRENTDATE = getdate();

  if exists(select top 1 1 from dbo.[DATABASEMAILSETTINGS])
    update dbo.[DATABASEMAILSETTINGS] set
      [ENABLED] = @ENABLED,
      [PROFILENAME] = @PROFILENAME,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
  else
    insert into dbo.[DATABASEMAILSETTINGS] (
      [ID],
      [ENABLED],
      [PROFILENAME],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED]
    ) values (
      newid(),
      @ENABLED,
      @PROFILENAME,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    );

  -- the fields on application url parts table are required - if a hosted site id exists, they won't be filled in, so don't do the insert/update

  set @ISHOSTED = dbo.[UFN_EMAILALERTSETTINGS_ISHOSTED]();

  if @ISHOSTED = 0 and @ENABLED = 1
    if exists(select top 1 1 from dbo.[APPLICATIONURLPARTS])
      update dbo.[APPLICATIONURLPARTS] set
        [ROOT] = @APPROOTURL,
        [SELECTEDDATABASE] = @SELECTEDDATABASE,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE;
    else
      insert into dbo.[APPLICATIONURLPARTS] (
        [ID],
        [ROOT],
        [SELECTEDDATABASE],
        [ADDEDBYID],
        [CHANGEDBYID],
        [DATEADDED],
        [DATECHANGED]
      ) values (
        newid(),
        @APPROOTURL,
        @SELECTEDDATABASE,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE
      );

  return 0;
end