USP_DATAFORMTEMPLATE_EDITLOAD_TEAMFUNDRAISINGEVENTPERFORMANCEQUICKCOMPARISON
The load procedure used by the edit dataform template "Team Fundraising Event Performance Quick Comparison Edit"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@NAME | nvarchar(100) | INOUT | Event |
@QUICKCOMPEVENTS | xml | INOUT | Quick comparison events |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_TEAMFUNDRAISINGEVENTPERFORMANCEQUICKCOMPARISON
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@NAME nvarchar(100) = null output,
@QUICKCOMPEVENTS xml = null output,
@TSLONG bigint = 0 output,
@CURRENTAPPUSERID uniqueidentifier
)
as
begin
set nocount on
set @DATALOADED = 0;
set @TSLONG = 0;
select
@DATALOADED = 1,
@NAME = NAME,
@TSLONG = TSLONG
from
dbo.EVENT
where
ID = @ID
create table #QUICKCOMPAREEVENT
(
ID uniqueidentifier,
NAME nvarchar(100) collate DATABASE_DEFAULT,
QUICKCOMPAREEVENTID uniqueidentifier
);
insert into #QUICKCOMPAREEVENT (ID, NAME, QUICKCOMPAREEVENTID)
select
EVENT.ID,
EVENT.NAME,
EVENT.QUICKCOMPAREEVENTID
from
dbo.EVENT
where
EVENT.ID = @ID
and (@CURRENTAPPUSERID is null or dbo.UFN_EVENT_USERHASSITEACCESS(@CURRENTAPPUSERID, EVENT.ID) = 1);
declare @MOREEVENTSTOCOMPARE bit;
set @MOREEVENTSTOCOMPARE = 1;
declare @ADDEDEVENTCOUNT int;
while @MOREEVENTSTOCOMPARE = 1
begin
insert into #QUICKCOMPAREEVENT (ID, NAME, QUICKCOMPAREEVENTID)
select distinct
EVENT.ID,
EVENT.NAME,
EVENT.QUICKCOMPAREEVENTID
from
#QUICKCOMPAREEVENT [QUICKCOMPAREEVENT]
inner join dbo.EVENT on
[QUICKCOMPAREEVENT].QUICKCOMPAREEVENTID = EVENT.ID
or
[QUICKCOMPAREEVENT].ID = EVENT.QUICKCOMPAREEVENTID
left join #QUICKCOMPAREEVENT [SELECTEDEVENT] on EVENT.ID = [SELECTEDEVENT].ID
where
[SELECTEDEVENT].ID is null
and (@CURRENTAPPUSERID is null or dbo.UFN_EVENT_USERHASSITEACCESS(@CURRENTAPPUSERID, EVENT.ID) = 1)
and EVENT.APPEALID is not null
set @ADDEDEVENTCOUNT = @@ROWCOUNT;
if @ADDEDEVENTCOUNT > 0 and (select count(ID) from #QUICKCOMPAREEVENT) < 100
set @MOREEVENTSTOCOMPARE = 1;
else
set @MOREEVENTSTOCOMPARE = 0;
end
select @QUICKCOMPEVENTS = (
select
ID as QUICKCOMPEVENTID,
NAME as QUICKCOMPEVENTNAME,
0 as SELECTED
from #QUICKCOMPAREEVENT
where ID <> @ID
order by NAME
for xml path('ITEM'),type,elements,root('QUICKCOMPEVENTS'),BINARY BASE64
);
drop table #QUICKCOMPAREEVENT;
return 0
end