Их довольно хитрое решение для этого и утечки фрагмента из активности.
Таким образом, в случае getResource или чего-либо другого, зависящего от доступа к контексту активности из фрагмента, всегда проверяется статус активности и статус фрагментов следующим образом
Activity activity = getActivity();
if(activity != null && isAdded())
getResources().getString(R.string.no_internet_error_msg);
//Or any other depends on activity context to be live like dailog
}
}
Существует несколько способов экранирования символьных данных в SQL Server, некоторые даже рекомендуют использовать функции QUOTENAME () .
Если вы действительно хотите Чтобы развить твердое понимание этой предметной области, могу я порекомендовать вам взглянуть на то, что опытные разработчики SQL Server считают важным чтением в отношении различных методов, которые вы можете использовать для включения динамического T-SQL в ваше кодирование.
Это работает на моем компьютере из SQL Server Management Studio :
@query varchar(max)
SET @query = 'SELECT * FROM Table WHERE [Name] = ''''''Karl'''''''
EXEC(@query)
Попробуйте:
DECLARE @query varchar(max)
SET @query = 'SELECT * FROM Table WHERE [Name] = ''Karl'''
PRINT 'when in doubt, print the query out: '+ISNULL(@query,'')
EXEC(@query)
Чтобы появилась одинарная кавычка, вам нужно имеют две смежные одинарные кавычки. Вы экранируете одинарную кавычку одной кавычкой, например:
PRINT '''' --will print a one single quote
PRINT '''''' --will print two single quotes
PRINT 'can''t' --will print can't
Двойная одинарная ('') кавычка будет действовать как одинарная одинарная кавычка внутри строкового литерала.
Вы пробовали использовать переменную?
declare @karl_name varchar(10);
set @karl_name = '''Karl''';
SELECT * FROM Table WHERE [Name] = @karl_name
сделать это нравится SET @query = 'SELECT * FROM Table WHERE [Name] =' '' 'Karl' '' ''
Это работает:
create table #demo([Name] varchar(max))
insert into #demo([Name]) values('''Karl''')
insert into #demo([Name]) values('Karl')
declare @query varchar(max)
set @query = 'SELECT * FROM #demo WHERE [Name] = ''''''Karl'''''''
EXEC(@query)
Вывод:
'Karl'
Но если «Карл» - это переменный текст, настоятельно рекомендуется вместо этого использовать что-то вроде этого:
declare @query nvarchar(max)
declare @param varchar(max)
set @param = N'''Karl'''
set @query = N'SELECT * FROM #demo WHERE [Name] = @param'
exec sp_executesql @query, N'@param varchar(max)', @param
Просто экранируйте апострофы, используя экранирующую полосу \, например, 'SELECT * FROM Table WHERE [Name] =' \ 'Karl \' ''
Надеюсь, это поможет