Так как мне не хватает репутации, чтобы оставлять комментарии, я должен опубликовать это как ответ. Во-первых, keyCode
является устаревшим , в настоящее время вы должны просто использовать event.key
, что также делает код более понятным для вас, поскольку ключ просто "a"
.
Другая проблема заключается в том, что вы получаете выбранные объекты с помощью select.getFeatures (), который либо возвращает компонент или коллекцию (см. API ). Объект не имеет метода clear
, но вы можете получить слой, а затем удалить выбранный объект из его источника. Это может выглядеть примерно так:
var selectSource = select.getLayer(selectedFeature).getSource();
selectSource.removeFeature(selectedFeature);
это при условии, что вы выбираете одну функцию, в противном случае вы можете зациклить выбранные функции.
Вы создавали ту или иную сохраненную процедуру, и в конце вашего кода, может быть, после комментария, где вы его не видели, у вас есть капля этой процедуры.
Взгляните на свою базу данных, используя:
select syo.name
from syscomments syc
join sysobjects syo on
syo.id = syc.id
where syc.[text] like '%DROP PROC%'
Возможно, код для доступа к хранимой процедуре использует другой контекст, отличный от dbo. Не забудьте добавить dbo.USP_Equipment_Delete в код, использующий его.
Вы используете
правильная база данных?
На всякий случай попробуйте
использовать [имя базы данных]
перед выполнением хранимой процедуры.
Есть ли у вас где-нибудь ПРОЦЕДУРА СОЗДАНИЯ? Вы не можете ИЗМЕНИТЬ процедуру, если она не существует.
Возможно, есть задание по периодическому восстановлению старой резервной копии?
Убедитесь, что в «Исходном каталоге» в строке подключения указана правильная база данных.
Переведите базу данных в однопользовательский режим (и убедитесь, что вы единственный пользователь) и проверять, пропадает ли процедура каждый час?
Если он там есть, то этот запрос должен возвращать запись:
SELECT * FROM sysobjects
WHERE id = OBJECT_ID('USP_Equipment_Delete')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1
У меня была та же проблема, и я ее просто исправил:
В файле сценария отсутствовал оператор «GO» между концом хранимой процедуры и началом следующей » IF EXIST THEN DROP ".
Итак, произошло то, что оператор drop добавлялся в конец любой хранимой процедуры, которая находилась над ней в сценарии. Поэтому, когда программа запускала хранимую процедуру, она отбрасывала любую хранимую процедуру, которая находилась под ней в сценарии.
Сейчас это кажется нам очевидным, но в то время не имело никакого смысла. Мы обнаружили, что он запускает профилировщик SQL для базы данных клиента, у которой возникла проблема на месте.