spAddUpdate_SiteSurveyResults
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SurveyId | int | IN | |
@CurrentUsersID | int | IN | |
@ClientSitesID | int | IN | |
@MachineIP | nvarchar(50) | IN | |
@bUpdate | bit | IN | |
@ResultsXml | ntext | IN |
Definition
Copy
CREATE procedure [dbo].[spAddUpdate_SiteSurveyResults](
@SurveyId int,
@CurrentUsersID int,
@ClientSitesID int,
@MachineIP nvarchar(50),
@bUpdate bit,
@ResultsXml ntext
)
as
set nocount on;
declare @SurveyResponsesId integer;
declare @iDoc int;
declare @answers table (ID int);
exec sp_xml_preparedocument @idoc output, @ResultsXml;
if (@bUpdate=1)
begin
select @SurveyResponsesId = a.ID
from SiteSurveyResponses a
where a.SiteSurveysId = @SurveyId
and a.ClientUsersID = @CurrentUsersID
and a.MachineIP = @MachineIP;
if (@SurveyResponsesId > 0)
begin
delete from SiteSurveyResults
where SiteSurveyResponsesId = @SurveyResponsesId;
end
end
insert into SiteSurveyResponses(SiteSurveysId, ClientUsersId, MachineIP)
values (@SurveyId, @CurrentUsersID, @MachineIP);
select @SurveyResponsesId = @@Identity;
insert into SiteSurveyResults(SiteSurveyResponsesId, SiteSurveyAnswersId, SiteSurveyAnswerColumnsId, AnswerValue)
select @SurveyResponsesId, SiteSurveyAnswersId, SiteSurveyAnswerColumnsId, AnswerValue
from OPENXML(@idoc, '/Survey/Result', 1)
with (SiteSurveyAnswersId integer, SiteSurveyAnswerColumnsId integer, AnswerValue nvarchar(max)); --AnswerValue resized from nvarchar(512) to varchar(max)
exec sp_xml_removedocument @idoc;