Monday, January 6, 2020

Full-text search example

if object_id(N'[dbo].[FTSearch]',N'U') is not null
   drop table [dbo].[FTSearch]
go

CREATE TABLE [dbo].[FTSearch]
(PK INT NOT NULL IDENTITY(1,1) CONSTRAINT fs_primarykey PRIMARY KEY, def varchar(max), [type] varchar(max), name varchar(max))
go

insert into [dbo].[FTSearch] ([type], name, def)
      SELECT
      obj.type_desc, -- [Object Type],
      obj.name,      -- [Object Name],      
      com.definition  -- [Text]
   FROM sys.sql_modules com
   JOIN sys.objects obj ON obj.object_id = com.object_id and SCHEMA_NAME(schema_id) <> 'sys' AND is_ms_shipped = 0
   ORDER BY obj.name
go

IF EXISTS ( SELECT 1 FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID(N'[dbo].[FTSearch]') ) 
   DROP FULLTEXT INDEX ON #FTSearch
go

IF EXISTS ( SELECT 1 FROM sysfulltextcatalogs ftc WHERE ftc.name = N'TestFTSearch' ) 
   DROP FULLTEXT CATALOG [TestFTSearch]
go

CREATE FULLTEXT CATALOG [TestFTSearch] WITH ACCENT_SENSITIVITY = ON AS DEFAULT AUTHORIZATION [dbo]
go

CREATE FULLTEXT INDEX ON [dbo].[FTSearch]([def]) KEY INDEX fs_primarykey ON ([TestFTSearch]) WITH (CHANGE_TRACKING AUTO)
go

ALTER FULLTEXT INDEX ON [dbo].[FTSearch] ENABLE
go

WHILE FulltextCatalogProperty('TestFTSearch','PopulateStatus') <> 0   
BEGIN  
   WAITFOR DELAY '00:00:05' 
END 

SELECT *
FROM [dbo].[FTSearch]
WHERE CONTAINS([def], 'CheckPOBuilderViewsSp')

Adjust dropdown width according to longest content (VB)

        For Each item As String In cboToResource.Items
            If TextRenderer.MeasureText(item, cboToResource.Font).Width > (cboToResource.DropDownWidth - SystemInformation.VerticalScrollBarWidth) Then
                cboToResource.DropDownWidth = TextRenderer.MeasureText(item, cboToResource.Font).Width + SystemInformation.VerticalScrollBarWidth
            End If
        Next

        cboToResource.ClientSize = New Size(cboToResource.DropDownWidth, cboToResource.ClientSize.Height)