ИДЕНТИФИКАТОР В КАВЫЧКАХ НАБОРА должен идти при вставке записи

Использование Regex (из detectmobilebrowsers.com ):

Вот функция, которая использует безумно длинный и всеобъемлющий регулярное выражение, которое возвращает истинное или ложное значение в зависимости от того, является ли пользователь просмотр с мобильного телефона.

window.mobilecheck = function() {
  var check = false;
  (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
  return check;
};

Для тех, кто хочет включить таблетки в этот тест (хотя, возможно, не следует), вы можете использовать следующую функцию:

window.mobileAndTabletcheck = function() {
  var check = false;
  (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
  return check;
};

Оригинальный ответ

Вы можете сделать это, просто пропустив список устройств и проверив, совпадает ли userragent с чем-то вроде этого:

function detectmob() { 
 if( navigator.userAgent.match(/Android/i)
 || navigator.userAgent.match(/webOS/i)
 || navigator.userAgent.match(/iPhone/i)
 || navigator.userAgent.match(/iPad/i)
 || navigator.userAgent.match(/iPod/i)
 || navigator.userAgent.match(/BlackBerry/i)
 || navigator.userAgent.match(/Windows Phone/i)
 ){
    return true;
  }
 else {
    return false;
  }
}

Однако, поскольку вы считаете, что этот метод ненадежен, вы можете предположить, что любое устройство с разрешением 800x600 или меньше было мобильным устройством, что еще больше сузило вашу цель (хотя в наши дни многие мобильные устройства имеют гораздо большие разрешения)

, т.е.

function detectmob() {
   if(window.innerWidth <= 800 && window.innerHeight <= 600) {
     return true;
   } else {
     return false;
   }
}

Ссылка:

9
задан RameshVel 5 July 2015 в 09:52
поделиться

4 ответа

После долгой борьбы мы смогли решить эту проблему. Я просто хотел рассказать о причине.

Наша команда разработчиков поддерживает отдельный внутренний инструмент для развертывания сценариев, который внутренне запускает утилиту SQLCMD (оболочка) для выполнения сценариев T-SQL в базе данных.

Причина: по умолчанию, QUOTED_IDENTIFIER - ВЫКЛ при работе в режиме SQLCMD!

Каждый сценарий, запускаемый с помощью этого инструмента, создается с помощью ЦИТАТЫ ИДЕНТИФИКАТОР ВЫКЛЮЧЕН . Мы единственный модуль, который использует индексированные представления. Все оставшиеся истории вы хорошо знаете из моих предыдущих сообщений: (

ПРИМЕЧАНИЕ: я собираюсь проголосовать за каждый пост как полезный.

24
ответ дан 4 December 2019 в 07:14
поделиться

Сценарий сохраненной процедуры, обеспечение / изменение параметров SET, запуск ALTER PROC, чтобы убедиться, что SET QUOTED IDENTIFIER ON установлен.

Почему?

Настройка «SET QUOTED IDENTIFIER» определяется во время создания для сохраненных процессов и всегда "ВКЛ" для таблиц. Источник, BOL .

Когда таблица создается, QUOTED ИДЕНТИФИКАТОР всегда сохраняется как ON в метаданных таблицы, даже если опция выключена, когда стол

Когда создается хранимая процедура, SET QUOTED_IDENTIFIER и SET Параметры ANSI_NULLS фиксируются и используется для последующих вызовов эта хранимая процедура.

Значение по умолчанию для соединений может быть определено на уровне сервера (sp_configure 'user options') или уровне базы данных (ALTER DATABASE). Для SSMS он находится в разделе «Инструменты..Опции .. Выполнение запроса..SQL Server..ANSI». Это также значение по умолчанию для клиентских библиотек (кроме DB-LIb).

Теперь, когда вы открываете окно запроса SSMS и начинаете набирать «CREATE PROC ..», тогда при запуске кода используются настройки SSMS.

И SET QUOTED IDENTIFIER не может быть установлен во время выполнения внутри сохраненной процедуры. Покажите мне ссылку, прежде чем вы не согласны ... Из приведенной выше ссылки MS BOL:

При выполнении внутри сохраненного процедура, установка SET QUOTED_IDENTIFIER не изменяется.

Вы должны много работать, чтобы запустить любой код с этим OFF ... поэтому наиболее вероятным решением будет ALTER или воссоздание сохраненной процедуры.

5
ответ дан 4 December 2019 в 07:14
поделиться

Я как раз читал эту статью Эрланда Соммарскога, Проклятие и благословения динамического SQL , и она включает следующий абзац, касающийся настройки SET QUOTED IDENTIFIER:

Значение по умолчанию для этого настройка зависит от контекста, но предпочтительная настройка - ВКЛ, и она должна быть ВКЛ, чтобы использовать XQuery, проиндексировано представления и индексы для вычисляемых столбцов.

Использует ли ваша хранимая процедура XQuery, индексированные представления или индексы для вычисляемых столбцов?

1
ответ дан 4 December 2019 в 07:14
поделиться

In SQL Server 2005, SET QUOTED IDENTIFIER is OFF by default, not ON (unless using an ODBC or OLE connection...see this for more information).

You do not need to create the table with SET QUOTED IDENTIFIER ON to use it.

All you need to do is add SET QUOTED IDENTIFIER ON to the beginning of your SP to enable it for the run of the procedure (and make sure that if you don't wish to leave it on, you have SET QUOTED IDENTIFIER OFF to switch it back).

EDIT

I stand corrected. According to this MSDN Page, SET QUOTED IDENTIFIER is ON by default (unless connection with a DB-Library application.

1
ответ дан 4 December 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: