logo

Задача без исполнителя: решение проблемы

Иногда возникает неприятная проблема, по тем или иным причинам задача создаётся без исполнителя. Это вызывает ошибку и задача висит. Проблема решается SQL-запросом в базу данных. На странице с ошибкой в адресной строке нужно подсмотреть ID задачи. Или просто пойти в базу данных ELMA и открыть таблицу TaskBase. Если работаем с версией STANDART, то запускаем Management Studio, если с Express, то подключаемся к базе через IBExpert.

Запрос к таблице TaskBase выдаст примерно такую информацию:

Нас интересует столбец Executor. Для проблемной задачи он будет пустым. Почему так происходит неизвестно, но иногда происходит. Можно такое сделать скриптом, если неумело его написать.

Решение проблемы – установить какое-то значение в поле Executor. Значение, равное значению поля CreationAutor. Тогда исполнителем будет назначен автор и сможет задачу закрыть.

Изменить значение поля в таблице базы данных можно только SQL-запросом.

Нам нужен запрос UPDATE.

UPDATE имеет следующий синтаксис:

UPDATE [таблица, которую будем менять] SET [поле, которое хотим изменить] = значение, которое хотим поместить в поле WHERE условие, которое позволяет определить, какие строки будем менять;

Для решения данной проблемы запрос имеет следующий вид:

UPDATE [TaskBase] SET [TaskBase].[Executor] = 1 WHERE [Id] = 46;

где [TaskBase] – имя таблицы, где нужно изменить значение;

[TaskBase].[Executor] = 1 – поле в таблице которое надо изменить. Ставим его значение, равным значению поля CreationAutor;

[Id] = 46 – id задачи, исполнителя которой меняем.

Внимание!
Если не указать условие WHERE [Id] =, можно испортить всю таблицу!

При работе с Management Studio нажатия кнопки Выполнить достаточно.

IBExpert требует ещё и нажать кнопку Commit Transaction.

Слева на рисунке кнопка Выполнить, справа кнопка Commit Transaction. Если её не нажать, выполненный запрос не сохранится. Это делает операции в IBExpert более безопасными.

Подробнее об установке IBExpert и подключении к базе данных см. соответствующую статью.