Wednesday, 11 November 2015

get Reourse File as JSON

string getReourseFileAsJSON(String resourceFileName)
        {
            try
            {
                string mapResString = "localizedString={'userLang':'" + m_UserInfo.UserLanguge + "',";
                ResXResourceReader rsxr = new ResXResourceReader(
                String.Format("{0}{1}\\{2}", System.AppDomain.CurrentDomain.BaseDirectory.ToString(), "App_GlobalResources", resourceFileName));
                foreach (DictionaryEntry d in rsxr)
                {
                    mapResString += "'" + d.Key.ToString() + "':'" + d.Value.ToString() + "',";
                }
                mapResString += "};";
                return mapResString;
            }
            catch
            {
                return "File Not Found";
            }

        }

Pass String Array to stored procedure

Split function to split array of integers values

if object_id('Split') is not null
    drop function split
go

create function dbo.Split
(
    @String varchar(max)
)
returns @SplittedValues table
(
    Id int primary key
)
as
begin
    declare @SplitLength int, @Delimiter varchar(5)

    set @Delimiter = ','

    while len(@String) > 0
    begin
        select @SplitLength = (case charindex(@Delimiter,@String) when 0 then
            len(@String) else charindex(@Delimiter,@String) -1 end)

        insert into @SplittedValues
        select convert(int, substring(@String,1,@SplitLength) )

        select @String = (case (len(@String) - @SplitLength) when 0 then  ''
            else right(@String, len(@String) - @SplitLength - 1) end)
    end
return 
end



Then create the  stored procedure 

CREATE PROCEDURE getLastInsertedRecods
       -- Add the parameters for the stored procedure here
       @currentDate as datetime,
       @carServiceIds as varchar
AS
BEGIN
       -- SET NOCOUNT ON added to prevent extra result sets from
       -- interfering with SELECT statements.
       SET NOCOUNT ON;

    -- Insert statements for procedure here
      
       SELECT TOP 10 carServiceId, position_x, position_y, speed, EngineOn
       FROM Vechile_track
       where dTime>=convert(date,@currentDate) and carServiceId in (select ID from dbo.Split(@carServiceIds))
       ORDER BY dTime ASC

END

Sunday, 1 November 2015

mssql search in all tables in


-- To search in all tables content and return a list of tables where the value
-- has been founded
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER   PROCEDURE [dbo].[SearchAllTables]
    @SearchStr NVARCHAR(100)
AS
BEGIN
    -- Create results table with NVARCHAR to support Arabic characters
    CREATE TABLE #Results (
        TableName NVARCHAR(370),
        ColumnName NVARCHAR(128),
        ColumnValue NVARCHAR(MAX),
        PrimaryKeyColumn NVARCHAR(128),
        PrimaryKeyValue NVARCHAR(500)
    )
   
    SET NOCOUNT ON
   
    DECLARE @TableName NVARCHAR(256),
            @ColumnName NVARCHAR(128),
            @SearchStr2 NVARCHAR(110),
            @PKColumn NVARCHAR(128),
            @SQL NVARCHAR(MAX)
   
    SET @TableName = ''
    SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%', '''')
   
    WHILE @TableName IS NOT NULL
    BEGIN
        SET @ColumnName = ''
        SET @TableName = (
            SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
            FROM INFORMATION_SCHEMA.TABLES
            WHERE TABLE_TYPE = 'BASE TABLE'
                AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
                AND OBJECTPROPERTY(
                    OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)),
                    'IsMSShipped'
                ) = 0
        )
       
        -- Get primary key column for current table
        IF @TableName IS NOT NULL
        BEGIN
            SET @PKColumn = (
                SELECT TOP 1 QUOTENAME(cu.COLUMN_NAME)
                FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
                INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE cu
                    ON tc.CONSTRAINT_NAME = cu.CONSTRAINT_NAME
                    AND tc.TABLE_SCHEMA = cu.TABLE_SCHEMA
                    AND tc.TABLE_NAME = cu.TABLE_NAME
                WHERE tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
                    AND tc.TABLE_SCHEMA = PARSENAME(@TableName, 2)
                    AND tc.TABLE_NAME = PARSENAME(@TableName, 1)
                ORDER BY cu.ORDINAL_POSITION
            )
        END
       
        WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
        BEGIN
            SET @ColumnName = (
                SELECT MIN(QUOTENAME(COLUMN_NAME))
                FROM INFORMATION_SCHEMA.COLUMNS
                WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
                    AND TABLE_NAME = PARSENAME(@TableName, 1)
                    AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'text', 'ntext')
                    AND QUOTENAME(COLUMN_NAME) > @ColumnName
            )
           
            IF @ColumnName IS NOT NULL
            BEGIN
                -- Build dynamic SQL with NVARCHAR casting to preserve Arabic characters
                SET @SQL = N'
                    INSERT INTO #Results (TableName, ColumnName, ColumnValue, PrimaryKeyColumn, PrimaryKeyValue)
                    SELECT
                        ''' + @TableName + ''',
                        ''' + @ColumnName + ''',
                        LEFT(CAST(' + @ColumnName + ' AS NVARCHAR(MAX)), 3630),
                        ' + CASE WHEN @PKColumn IS NOT NULL
                                THEN '''' + @PKColumn + ''''
                                ELSE 'NULL'
                           END + ',
                        ' + CASE WHEN @PKColumn IS NOT NULL
                                THEN 'CAST(' + @PKColumn + ' AS NVARCHAR(500))'
                                ELSE 'NULL'
                           END + '
                    FROM ' + @TableName + ' WITH (NOLOCK)
                    WHERE CAST(' + @ColumnName + ' AS NVARCHAR(MAX)) LIKE N' + @SearchStr2
               
                EXEC sp_executesql @SQL
            END
        END
    END
   
    SELECT
        TableName,
        ColumnName,
        ColumnValue,
        PrimaryKeyColumn,
        PrimaryKeyValue
    FROM #Results
    ORDER BY TableName, ColumnName
   
    DROP TABLE #Results
END
GO