Advertisement
Ruslan_Rayanov

chatSearch table

Sep 8th, 2022
3,298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 16.83 KB | None | 0 0
  1. ----------------TABLE chatSearch--------------
  2. print N'Создание/обновление структуры DB TABLE  as_crud_tables-------------------- '
  3. IF NOT EXISTS (SELECT * FROM sysobjects WHERE name= 'as_crud_tables' AND xtype='U') BEGIN
  4.     CREATE TABLE [dbo].[as_crud_tables]
  5.     (
  6.      [id] [INT] IDENTITY(1,1) NOT NULL
  7.      CONSTRAINT [PK_as_crud_tables] PRIMARY KEY CLUSTERED ( [id] ASC )
  8.     ) ON [PRIMARY]
  9.     print 'Создана таблица as_crud_tables '
  10. END
  11. GO
  12. IF COL_LENGTH( 'as_crud_tables', 'title') IS NULL BEGIN
  13.     ALTER TABLE as_crud_tables
  14.     ADD [title] nvarchar (256) NULL  
  15. END
  16. IF COL_LENGTH( 'as_crud_tables', 'titleTooltip') IS NULL BEGIN
  17.     ALTER TABLE as_crud_tables
  18.     ADD [titleTooltip] nvarchar (1024) NULL  
  19. END
  20. IF COL_LENGTH( 'as_crud_tables', 'code') IS NULL BEGIN
  21.     ALTER TABLE as_crud_tables
  22.     ADD [code] nvarchar (32) NULL  
  23. END
  24. IF COL_LENGTH( 'as_crud_tables', 'addEditLink') IS NULL BEGIN
  25.     ALTER TABLE as_crud_tables
  26.     ADD [addEditLink] nvarchar (128) NULL  
  27. END
  28. IF COL_LENGTH( 'as_crud_tables', 'commentsCode') IS NULL BEGIN
  29.     ALTER TABLE as_crud_tables
  30.     ADD [commentsCode] nvarchar (128) NULL  
  31. END
  32. IF COL_LENGTH( 'as_crud_tables', 'immediatelyLoad') IS NULL BEGIN
  33.     ALTER TABLE as_crud_tables
  34.     ADD [immediatelyLoad] bit NULL  
  35. END
  36. IF COL_LENGTH( 'as_crud_tables', 'emptyText') IS NULL BEGIN
  37.     ALTER TABLE as_crud_tables
  38.     ADD [emptyText] nvarchar (128) NULL  
  39. END
  40. IF COL_LENGTH( 'as_crud_tables', 'filterLinkTitle') IS NULL BEGIN
  41.     ALTER TABLE as_crud_tables
  42.     ADD [filterLinkTitle] nvarchar (128) NULL  
  43. END
  44. IF COL_LENGTH( 'as_crud_tables', 'showChecksCol') IS NULL BEGIN
  45.     ALTER TABLE as_crud_tables
  46.     ADD [showChecksCol] bit NULL  
  47. END
  48. IF COL_LENGTH( 'as_crud_tables', 'showNumsCol') IS NULL BEGIN
  49.     ALTER TABLE as_crud_tables
  50.     ADD [showNumsCol] bit NULL  
  51. END
  52. IF COL_LENGTH( 'as_crud_tables', 'showToolbar') IS NULL BEGIN
  53.     ALTER TABLE as_crud_tables
  54.     ADD [showToolbar] bit NULL  
  55. END
  56. IF COL_LENGTH( 'as_crud_tables', 'getItemsURLParameters') IS NULL BEGIN
  57.     ALTER TABLE as_crud_tables
  58.     ADD [getItemsURLParameters] nvarchar (128) NULL  
  59. END
  60. IF COL_LENGTH( 'as_crud_tables', 'toolbarAdditional') IS NULL BEGIN
  61.     ALTER TABLE as_crud_tables
  62.     ADD [toolbarAdditional] nvarchar (MAX) NULL  
  63. END
  64. IF COL_LENGTH( 'as_crud_tables', 'groupOperationsToolbar') IS NULL BEGIN
  65.     ALTER TABLE as_crud_tables
  66.     ADD [groupOperationsToolbar] nvarchar (MAX) NULL  
  67. END
  68. IF COL_LENGTH( 'as_crud_tables', 'getFilterMakeupCallback') IS NULL BEGIN
  69.     ALTER TABLE as_crud_tables
  70.     ADD [getFilterMakeupCallback] nvarchar (MAX) NULL  
  71. END
  72. IF COL_LENGTH( 'as_crud_tables', 'filterCallback') IS NULL BEGIN
  73.     ALTER TABLE as_crud_tables
  74.     ADD [filterCallback] nvarchar (2048) NULL  
  75. END
  76. IF COL_LENGTH( 'as_crud_tables', 'processRowCallback') IS NULL BEGIN
  77.     ALTER TABLE as_crud_tables
  78.     ADD [processRowCallback] nvarchar (2048) NULL  
  79. END
  80. IF COL_LENGTH( 'as_crud_tables', 'getItemsCallback') IS NULL BEGIN
  81.     ALTER TABLE as_crud_tables
  82.     ADD [getItemsCallback] nvarchar (2048) NULL  
  83. END
  84. IF COL_LENGTH( 'as_crud_tables', 'remove') IS NULL BEGIN
  85.     ALTER TABLE as_crud_tables
  86.     ADD [remove] bit NULL  
  87. END
  88. IF COL_LENGTH( 'as_crud_tables', 'comments') IS NULL BEGIN
  89.     ALTER TABLE as_crud_tables
  90.     ADD [comments] bit NULL  
  91. END
  92. IF COL_LENGTH( 'as_crud_tables', 'ctrlClickShowComment') IS NULL BEGIN
  93.     ALTER TABLE as_crud_tables
  94.     ADD [ctrlClickShowComment] bit NULL  
  95. END
  96. IF COL_LENGTH( 'as_crud_tables', 'users') IS NULL BEGIN
  97.     ALTER TABLE as_crud_tables
  98.     ADD [users] nvarchar (128) NULL  
  99. END
  100. IF COL_LENGTH( 'as_crud_tables', 'roles') IS NULL BEGIN
  101.     ALTER TABLE as_crud_tables
  102.     ADD [roles] nvarchar (128) NULL  
  103. END
  104. IF COL_LENGTH( 'as_crud_tables', 'fastCreate') IS NULL BEGIN
  105.     ALTER TABLE as_crud_tables
  106.     ADD [fastCreate] bit NULL  
  107. END
  108. IF COL_LENGTH( 'as_crud_tables', 'pageSize') IS NULL BEGIN
  109.     ALTER TABLE as_crud_tables
  110.     ADD [pageSize] INT NULL  
  111. END
  112. IF COL_LENGTH( 'as_crud_tables', 'requestGetItems') IS NULL BEGIN
  113.     ALTER TABLE as_crud_tables
  114.     ADD [requestGetItems] nvarchar (512) NULL  
  115. END
  116.  
  117. -- Внешние ключи таблицы as_crud_tables
  118. -- ВАЖНО Параметры ключа delete / update ОБРАБАТЫВАЮТСЯ
  119.  
  120. GO
  121. print N'Конец функции DBTABLE  as_crud_tables-------------------- '
  122.  
  123. -- Конец функции DB Table as_crud_tables--------------------
  124.  
  125. GO
  126.  
  127. GO
  128. DECLARE @tableID INT, @tableDatatypeID INT, @editableTypeID INT, @filterTypeID INT, @operationTypeID INT; SET @tableID = NULL;
  129. print  N'НАЧАЛО TABLE chatSearch---------------------------------------------------------------------------------------------------- '
  130. SELECT top 1 @tableID = t.id FROM as_crud_tables AS t WHERE t.code = 'chatSearch' ORDER BY t.id;
  131. BEGIN try
  132.     IF @tableID > 0 BEGIN
  133.         UPDATE as_crud_tables
  134.         SET [title] = 'Поиск по чату'
  135.             ,[titleTooltip] = ''
  136.             ,[code] = 'chatSearch'
  137.             ,[addEditLink] = ''
  138.             ,[commentsCode] = ''
  139.             ,[immediatelyLoad] = 1
  140.             ,[emptyText] = 'Нет элементов'
  141.             ,[filterLinkTitle] = ''
  142.             ,[showChecksCol] = 0
  143.             ,[showNumsCol] = 1
  144.             ,[showToolbar] = 1
  145.             ,[getItemsURLParameters] = ''
  146.             ,[toolbarAdditional] = ''
  147.             ,[groupOperationsToolbar] = ''
  148.             ,[getFilterMakeupCallback] = ''
  149.             ,[filterCallback] = ''
  150.             ,[processRowCallback] = ''
  151.             ,[getItemsCallback] = ''
  152.             ,[remove] = 0
  153.             ,[comments] = 0
  154.             ,[ctrlClickShowComment] = 0
  155.             ,[users] = ''
  156.             ,[roles] = '*'
  157.             ,[fastCreate] = 0
  158.             ,[pageSize] = 100
  159.             ,[requestGetItems] = ''
  160.         WHERE id = @tableID;
  161.         print N'Таблица chatSearch обновлена'
  162.     END ELSE BEGIN
  163.         INSERT INTO as_crud_tables ([title],[titleTooltip],[code],[addEditLink],[commentsCode],[immediatelyLoad],[emptyText]
  164.             ,[filterLinkTitle],[showChecksCol],[showNumsCol],[showToolbar],[getItemsURLParameters],[toolbarAdditional]
  165.             ,[groupOperationsToolbar],[getFilterMakeupCallback],[filterCallback],[processRowCallback],[getItemsCallback],[remove]
  166.             ,[comments],[ctrlClickShowComment],[users],[roles],[fastCreate],[pageSize], [requestGetItems])
  167.          VALUES ( 'Поиск по чату'            , ''
  168.             , 'chatSearch'
  169.             , ''
  170.             , ''
  171.             , 1
  172.             , 'Нет элементов'
  173.             , ''
  174.             , 0
  175.             , 1
  176.             , 1
  177.             , ''
  178.             , ''
  179.             , ''
  180.             , ''
  181.             , ''
  182.             , ''
  183.             , ''
  184.             , 0
  185.             , 0
  186.             , 0
  187.             , ''
  188.             , '*'
  189.             , 0
  190.             , 100
  191.             , ''
  192.         );
  193.         SELECT @tableID = scope_identity();
  194.         print N'Таблица chatSearch добавлена'
  195.     END;
  196. END try
  197. BEGIN catch
  198.     print N' ERROR ############################################## При обновленииобавлении таблицы chatSearch возникла ошибка: ' + error_message()
  199. END catch
  200.  
  201. BEGIN try
  202.     DELETE FROM as_crud_cols WHERE as_crud_cols.tableID = @tableID;
  203.     print N'Колонки таблицы chatSearch удалены'
  204. END try
  205. BEGIN catch
  206.     PRINT N'ERROR ############################################## При удалении колонок таблицы chatSearch возникла ошибка: ' + error_message()
  207. END catch
  208.  
  209. BEGIN try
  210.     SET @tableDatatypeID = NULL; SET @editableTypeID = NULL; SET @filterTypeID = NULL;
  211.     SELECT @tableDatatypeID = d.id FROM as_crud_dataTypes AS d WHERE d.code = 'string';
  212.     SELECT @editableTypeID = e.id FROM as_crud_editableTypes AS e WHERE e.code = NULL;
  213.     SELECT @filterTypeID = f.id FROM as_crud_filterTypes AS f WHERE f.code = NULL;
  214.      INSERT INTO as_crud_cols ([tableID],[title],[tooltip],[ord],[datatypeID],[isSort],[isVisible]
  215.         ,[isPK],[editableTypeID],[editableCallback],[filterTypeID],[code],[filterNotSelected],[format]
  216.         ,[editableMin],[editableMax],[editableStep],[sqlGetListValues],[width])
  217.     VALUES ( @tableID, 'Дата'
  218.         , ''
  219.         , 0
  220.         , @tableDatatypeID
  221.         , 0
  222.         , 1
  223.         , 0
  224.         , @editableTypeID
  225.         , ''
  226.         , @filterTypeID
  227.         , 'date'
  228.         , ''
  229.         , ''
  230.         , NULL
  231.         , NULL
  232.         , NULL
  233.         , ''
  234.         , NULL
  235.     );
  236.     print N'Колонка date таблицы добавлена'
  237. END try
  238. BEGIN catch
  239.     print  N'ERROR ############################################## При добалении колонки date таблицы возникла ошибка: ' + error_message()
  240. END catch
  241.  
  242. BEGIN try
  243.     SET @tableDatatypeID = NULL; SET @editableTypeID = NULL; SET @filterTypeID = NULL;
  244.     SELECT @tableDatatypeID = d.id FROM as_crud_dataTypes AS d WHERE d.code = 'string';
  245.     SELECT @editableTypeID = e.id FROM as_crud_editableTypes AS e WHERE e.code = NULL;
  246.     SELECT @filterTypeID = f.id FROM as_crud_filterTypes AS f WHERE f.code = NULL;
  247.      INSERT INTO as_crud_cols ([tableID],[title],[tooltip],[ord],[datatypeID],[isSort],[isVisible]
  248.         ,[isPK],[editableTypeID],[editableCallback],[filterTypeID],[code],[filterNotSelected],[format]
  249.         ,[editableMin],[editableMax],[editableStep],[sqlGetListValues],[width])
  250.     VALUES ( @tableID, 'Отправитель'
  251.         , ''
  252.         , 0
  253.         , @tableDatatypeID
  254.         , 0
  255.         , 1
  256.         , 0
  257.         , @editableTypeID
  258.         , ''
  259.         , @filterTypeID
  260.         , 'author'
  261.         , ''
  262.         , ''
  263.         , NULL
  264.         , NULL
  265.         , NULL
  266.         , ''
  267.         , NULL
  268.     );
  269.     print N'Колонка author таблицы добавлена'
  270. END try
  271. BEGIN catch
  272.     print  N'ERROR ############################################## При добалении колонки author таблицы возникла ошибка: ' + error_message()
  273. END catch
  274.  
  275. BEGIN try
  276.     SET @tableDatatypeID = NULL; SET @editableTypeID = NULL; SET @filterTypeID = NULL;
  277.     SELECT @tableDatatypeID = d.id FROM as_crud_dataTypes AS d WHERE d.code = 'string';
  278.     SELECT @editableTypeID = e.id FROM as_crud_editableTypes AS e WHERE e.code = NULL;
  279.     SELECT @filterTypeID = f.id FROM as_crud_filterTypes AS f WHERE f.code = 'string';
  280.      INSERT INTO as_crud_cols ([tableID],[title],[tooltip],[ord],[datatypeID],[isSort],[isVisible]
  281.         ,[isPK],[editableTypeID],[editableCallback],[filterTypeID],[code],[filterNotSelected],[format]
  282.         ,[editableMin],[editableMax],[editableStep],[sqlGetListValues],[width])
  283.     VALUES ( @tableID, 'Сообщение'
  284.         , ''
  285.         , 0
  286.         , @tableDatatypeID
  287.         , 0
  288.         , 1
  289.         , 0
  290.         , @editableTypeID
  291.         , ''
  292.         , @filterTypeID
  293.         , 'text'
  294.         , 'Найти...'
  295.         , ''
  296.         , NULL
  297.         , NULL
  298.         , NULL
  299.         , ''
  300.         , NULL
  301.     );
  302.     print N'Колонка text таблицы добавлена'
  303. END try
  304. BEGIN catch
  305.     print  N'ERROR ############################################## При добалении колонки text таблицы возникла ошибка: ' + error_message()
  306. END catch
  307.  
  308. BEGIN try
  309.     SET @tableDatatypeID = NULL; SET @editableTypeID = NULL; SET @filterTypeID = NULL;
  310.     SELECT @tableDatatypeID = d.id FROM as_crud_dataTypes AS d WHERE d.code = 'string';
  311.     SELECT @editableTypeID = e.id FROM as_crud_editableTypes AS e WHERE e.code = NULL;
  312.     SELECT @filterTypeID = f.id FROM as_crud_filterTypes AS f WHERE f.code = NULL;
  313.      INSERT INTO as_crud_cols ([tableID],[title],[tooltip],[ord],[datatypeID],[isSort],[isVisible]
  314.         ,[isPK],[editableTypeID],[editableCallback],[filterTypeID],[code],[filterNotSelected],[format]
  315.         ,[editableMin],[editableMax],[editableStep],[sqlGetListValues],[width])
  316.     VALUES ( @tableID, 'id'
  317.         , ''
  318.         , 0
  319.         , @tableDatatypeID
  320.         , 0
  321.         , 0
  322.         , 1
  323.         , @editableTypeID
  324.         , ''
  325.         , @filterTypeID
  326.         , 'id'
  327.         , ''
  328.         , ''
  329.         , NULL
  330.         , NULL
  331.         , NULL
  332.         , ''
  333.         , NULL
  334.     );
  335.     print N'Колонка id таблицы добавлена'
  336. END try
  337. BEGIN catch
  338.     print  N'ERROR ############################################## При добалении колонки id таблицы возникла ошибка: ' + error_message()
  339. END catch
  340.  
  341. BEGIN try
  342.     SET @tableDatatypeID = NULL; SET @editableTypeID = NULL; SET @filterTypeID = NULL;
  343.     SELECT @tableDatatypeID = d.id FROM as_crud_dataTypes AS d WHERE d.code = 'string';
  344.     SELECT @editableTypeID = e.id FROM as_crud_editableTypes AS e WHERE e.code = NULL;
  345.     SELECT @filterTypeID = f.id FROM as_crud_filterTypes AS f WHERE f.code = NULL;
  346.      INSERT INTO as_crud_cols ([tableID],[title],[tooltip],[ord],[datatypeID],[isSort],[isVisible]
  347.         ,[isPK],[editableTypeID],[editableCallback],[filterTypeID],[code],[filterNotSelected],[format]
  348.         ,[editableMin],[editableMax],[editableStep],[sqlGetListValues],[width])
  349.     VALUES ( @tableID, 'Чат'
  350.         , ''
  351.         , 0
  352.         , @tableDatatypeID
  353.         , 0
  354.         , 1
  355.         , 0
  356.         , @editableTypeID
  357.         , ''
  358.         , @filterTypeID
  359.         , 'room'
  360.         , ''
  361.         , ''
  362.         , NULL
  363.         , NULL
  364.         , NULL
  365.         , ''
  366.         , NULL
  367.     );
  368.     print N'Колонка room таблицы добавлена'
  369. END try
  370. BEGIN catch
  371.     print  N'ERROR ############################################## При добалении колонки room таблицы возникла ошибка: ' + error_message()
  372. END catch
  373.  
  374. BEGIN try
  375.     DELETE FROM as_crud_tableOperations WHERE tableID = @tableID;
  376.     print N'Операции таблицы chatSearch удалены'
  377. END try
  378. BEGIN catch
  379.     PRINT N'ERROR ############################################## При удалении операций таблицы chatSearch возникла ошибка: ' + error_message()
  380. END catch
  381.  
  382. GO
  383.  
  384.  
  385. print  N'НАЧАЛО PROCS crud_chatSearch[_]-------------------- '
  386. print N'Попытка удаления хранимых процедур'
  387. DECLARE @name nvarchar(256), @sqlExpec nvarchar(MAX);
  388. DECLARE cur CURSOR LOCAL FOR SELECT o.name FROM sys.objects AS o WHERE o.name LIKE 'crud_chatSearch[_]%' AND TYPE IN (N'P', N'PC')
  389. OPEN cur fetch NEXT FROM cur INTO @name
  390. while @@FETCH_STATUS = 0 BEGIN
  391.     BEGIN try
  392.         SET @sqlExpec = 'drop procedure [' + @name+']'
  393.         EXEC sp_executesql @sqlExpec
  394.         print N'Удалена хранимая процедура ' + @name
  395.     END try
  396.     BEGIN catch
  397.         print N'ERROR ############################################## Ошибка при удалени хранимой процедуры ' + @name + ': '+ error_message()
  398.     END catch
  399.     fetch NEXT FROM cur INTO @name
  400. END
  401. close cur deallocate cur
  402.  
  403. BEGIN try
  404.     EXEC sp_executesql N'CREATE PROCEDURE [dbo].[crud_chatSearch_getItems]
  405.     @filters CRUDFilterParameter READONLY,
  406.     @sort sql_variant,
  407.     @direction nvarchar(8),
  408.     @page int,
  409.     @pageSize int,
  410.     @username nvarchar(32)
  411. AS
  412. BEGIN
  413.     declare   @ids TABLE (id int)
  414.  
  415.     -- filters...
  416.     declare @search nvarchar(128) = isnull((select Value from @filters where [Key] = ''text''), '''')
  417.    
  418.    declare @userID int = (select top 1 id from as_users where username = @username)
  419.     declare @roomID int = isnull((select top 1 try_cast(value as int) from @filters where [key]=''itemID''), 0)
  420.     insert into @ids
  421.     select id
  422.     from as_msg_messages
  423.     where
  424.         (@roomID =0 and roomID in (select roomID from as_msg_roomUsers where userID = @userID)
  425.             or roomID = @roomID
  426.        )
  427.        and  @search<>''''
  428.        and (isnull(@search, '''')='''' or text like ''%''+@search+''%'')
  429.    
  430.     -- SELECT 1
  431.     select isnull(m.[id], 0) [id],
  432.         isnull(try_convert(nvarchar(16), m.[created], 120), '''') [date],
  433.        dbo.as_timeDelay(datediff(minute, m.created, getdate())) + '' назад'' desc_date,
  434.         isnull((select username from as_users where id = m.userID), '''') [author],
  435.         isnull(replace(m.[text], @search, ''<span class="bg-warning">''+ @search+ ''</span>''), '''') [text],
  436.        iif(@roomID=0, ''<a href="/messages/''+iif(lower(type.code)=''userchat'', (select top 1 username from as_msg_roomUsers ru
  437.                                                                               inner join as_users u on ru.userID = u.id
  438.                                                                               where roomID = room.id and userID <>@userID
  439.                                                                              ), type.code+''__''+cast(room.itemID as nvarchar))+''">''+[dbo].[msg_getRoomItemName](room.id, type.code, room.itemID, @userID)+''</a>'', NULL) room
  440.  
  441.     from as_msg_messages m
  442.         inner join as_msg_rooms room on m.roomID = room.id
  443.        inner join as_msg_types type on type.id = room.typeID
  444.     where m.id in (select id from @ids)
  445.     order by id desc
  446.     OFFSET @PageSize * (@Page - 1) ROWS
  447.     FETCH NEXT @PageSize ROWS ONLY;
  448.    
  449.     -- SELECT 2
  450.     select count(*) from @ids  
  451.  
  452.     -- SELECT 3
  453.    select 1 Compact, ''14px'' fontSize, 1 HideTitleCount, ''h3'' headerTag,
  454.         iif(@search='''', ''Что будем искать?'', ''Не найдено сообщений'') EmptyText
  455. end
  456.  
  457. --ru 08.09.2022 11:31:36
  458. --ru 08.09.2022 11:39:33
  459. --ru 08.09.2022 12:15:03
  460. '
  461.     print N'Добавлена хранимая процедура crud_chatSearch_getItems'
  462. END try
  463. BEGIN catch
  464.     print N'ERROR ############################################## Ошибка при добавлении хранимой процедуры crud_chatSearch_getItems: '+ error_message()
  465. END catch
  466.  
  467.  
  468. GO
  469.  
  470. print  N'КОНЕЦ PROCS crud_chatSearch[_]--------------------  '
  471.  
  472.  
  473. --КОНЕЦ PROCS crud_chatSearch[_]--------------------
  474. GO
  475. print  N'КОНЕЦ TABLE chatSearch----------------------------------------------------------------------------------------------------  '
  476.  
  477.  
  478. --КОНЕЦ TABLE chatSearch----------------------------------------------------------------------------------------------------
  479.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement