Не только необходимо выполнить его в транзакции, этому также нужен высокий уровень изоляции. Я уровень изоляции значения по умолчанию факта являюсь Фиксировавшим Read и эта сериализуемая потребность кода.
SET transaction isolation level SERIALIZABLE
BEGIN TRANSACTION Upsert
UPDATE myTable set Col1=@col1, Col2=@col2 where ID=@ID
if @@rowcount = 0
begin
INSERT into myTable (ID, Col1, Col2) values (@ID @col1, @col2)
end
COMMIT TRANSACTION Upsert
, Возможно, добавление также @@ проверка на ошибки и откат могли быть хорошей идеей.
Обычная причина, по которой document.body
имеет значение null, заключается в том, что вы выполняете скрипт до того, как встретился тег
(*). Не видя кода, я не могу сказать наверняка, но это обычная причина. Переместитесь туда, где вы разместили скрипты.
(*: или другой элемент, такой как
, который, как известно браузеру, не может находиться вне тела, и в этом случае он незаметно добавляет
, чтобы исправить недостающую разметку. Различие в синтаксическом анализе некоторых тегов, обычно содержащихся в теле, может объяснить, почему Safari позволяет вам избежать неприятностей.)
Может быть, это является причиной FF, есть ли проблемы с телом?
Нет. Это нарушенная разметка, и Drupal не должен этого делать, но закрытие
не делает '
Что ж, это странно, но просто добавив эту строку в конце моего $ (document) .ready (function () {});
исправлено все, что нарушало body:
if(null==document.body){document.body = $('body')[0];}
Но мне нужно будет больше узнать, почему он вообще сломался, а также почему он не сломался в сафари.
There should not be any output from Drupal below the body tag. Check your themes page.tpl.php
file. The end should look pretty much like this:
<!-- BEGIN closure: must always be last element in body -->
<?php print $closure; ?>
<!-- END closure -->
</body>
</html>
There should be no print statement below the output of the $closure variable, as this needs to be the last content output (but still within the body).
Не используете ли вы наряду с jQuery другой JS фреймворк? Если да, то позаботились ли вы о том, как загрузить обе библиотеки, чтобы они оставались совместимыми (порядок, исправление совместимости...) ?