Advertisement
Ruslan_Rayanov

Calendar UpdateField

Oct 18th, 2020
530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.90 KB | None | 0 0
  1. CREATE PROCEDURE [dbo].[crud_tst-calendar_updateField]
  2.     @itemID int,
  3.     @field nvarchar(64),
  4.     @value nvarchar(max),
  5.     @username nvarchar(64)
  6. AS
  7. BEGIN
  8. -- обновление поля таблицы
  9. -- для приведения типов используйте try_cast(@value as int), Для даты try_convert(date, @value, 104)
  10.  
  11.     declare @start nvarchar(256), @end nvarchar(256), @additionalData nvarchar(256), @startDate datetime, @endDate datetime
  12.  
  13.       select @start = dbo.str_splitPart(@value, '||', 1)
  14.       select @additionalData = dbo.str_splitPart(@value, '||', 2)
  15.  
  16.       select @end = dbo.str_splitPart(@additionalData, '||', 1)
  17.       select @additionalData = dbo.str_splitPart(@additionalData, '||', 2)
  18.  
  19.       select @startDate =cast(CONVERT(datetime2, @start, 126) as datetime)
  20.       select @endDate =cast(CONVERT(datetime2, @end, 126) as datetime)
  21.  
  22.  
  23. if(@field='event') begin
  24.     if(@itemID>0) begin
  25.       -- это редактирование дат элемента  
  26.      
  27.       update as_events
  28.       set start = @startDate, [end] = @endDate
  29.       where id = @itemID and username=@username
  30.     end else begin
  31.         -- это добавление элемента через перетаскивание (additionalData=title||itemID от внешнего фильтра. это не itemID существующего события)
  32.         declare @title nvarchar(128) ='', @outerItemID nvarchar(256)
  33.         select @title = dbo.str_splitPart(@additionalData, '||', 1)
  34.         select @outerItemID = dbo.str_splitPart(@additionalData, '||', 2)      
  35.        
  36.         insert into as_events(start, [end], title, [desc], url, allDay, typeID, username)
  37.         values (@startDate, @endDate, @title, '', '', 0, try_cast(@outerItemID as int), @username)
  38.    
  39.     end
  40. end else begin
  41.     select 'Невалидный код свойства' Msg, 0 Result
  42.     return
  43. end  
  44. select '' Msg, 1 Result
  45.  
  46. END
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement