Mam problem z metodami Value() oraz Exiat(), muszę sprawdzić więcej parametrów arkusza XML jednak nie wiem jak wykorzystać parametr podawany bezpośrednio przy uruchamianiu procedury. Próbowałem:
Where (CAST(BPGateway.GridDatasourceOrdBase.GridFormatXML AS XML).exist('//UltraGridColumn [@key=sql:variable("@_Key")][sql:variable("@Field")=sql:variable("@ExistingValue")]')=1 )
jednak nie można stosować takiej składni. Jeśli ktoś ma pomysł jak rozwiązać problem proszę o pomoc.
Fragment Procedury :
ALTER procedure tmp(
@_Key nvarchar(250),
@Field nvarchar(250),
@ExistingValue nvarchar(250)
) AS
If(@Field='Width')
Begin
Select SJ.StyleJob, SJ.StyleJob_Name, SJ.StyleJob_Description, CAST(BPGateway.GridDatasourceOrdBase.GridFormatXML AS
XML).value('(//UltraGridColumn [@Key=sql:variable("@_Key")]/@Width)[1]','nvarchar(255)') as [Existing Value]
From /** lokalizacja**/
Where (CAST(BPGateway.GridDatasourceOrdBase.GridFormatXML AS XML).exist('//UltraGridColumn [@Key=sql:variable("@_Key")]
[@Width=sql:variable("@ExistingValue")]')=1 )