USP_DATAFORMTEMPLATE_EDITLOAD_CYCLE

The load procedure used by the edit dataform template "Cycle Edit Data Form"

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.
@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.
@NAME nvarchar(100) INOUT Name
@DESCRIPTION nvarchar(255) INOUT Description
@CYCLEDAYS xml INOUT Cycle day
@INUSE bit INOUT

Definition

Copy


                        CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_CYCLE(
                                @ID uniqueidentifier,
                                @DATALOADED bit = 0 output,
                                @TSLONG bigint = 0 output,
                                @NAME nvarchar(100) = null output,
                                @DESCRIPTION nvarchar(255) = null output,
                                @CYCLEDAYS xml = null output,
                                @INUSE bit = null output
                        )
                        as

                            set nocount on;

                            -- be sure to set these, in case the select returns no rows

                            set @DATALOADED = 0
                            set @TSLONG = 0

                            -- populate the output parameters, which correspond to fields on the form.  Note that

                            -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system

                            -- will display a "no data loaded" message.  Also note that we fetch the TSLONG so that concurrency

                            -- can be considered.

                            select
                                @DATALOADED = 1,
                                @TSLONG = CYCLE.TSLONG,
                                @NAME = CYCLE.NAME,
                                @DESCRIPTION = CYCLE.DESCRIPTION,
                                @CYCLEDAYS = dbo.UFN_CYCLEDAY_GETCYCLEDAY_TOITEMLISTXML(@ID),
                                @INUSE = case when exists (
                                                    select 1
                                                    from dbo.TIMETABLE
                                                        inner join dbo.SESSION on TIMETABLE.ID = SESSION.TIMETABLEID
                                                    where TIMETABLE.CYCLEID = @ID)
                                                then 1 else 0 end                                                
                            from dbo.CYCLE
                            where CYCLE.ID = @ID

                            return 0;