Форум TRACE MODE: техническая поддержка
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
Послать новую тему / Post New Topic  
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version » Как в TraceMode получить сообщение об ошибке при SQL запросе?

   
Автор / Author Тема / Topic: Как в TraceMode получить сообщение об ошибке при SQL запросе?
Ave Oleg
Active Forum Member / Активный участник форума
Участник № / Member № 6246


Icon 5 отправлено / posted      Профиль для / Profile for Ave Oleg           Редактировать/удалить сообщение / Edit/Delete Post 
Здравствуйте.
Создана таблица в БД с 1 столбцом BarCode с индексом Primary, чтобы устранить запись дубликата. Как можно получить сообщение об ошибке (#1062 – Duplicate entry ’??′ for key ‘PRIMARY’) в TraceMode, если запись в БД не произошла и выдать сообщение, что найден дубликат?

Сообщения / Posts 87 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ave Oleg
Active Forum Member / Активный участник форума
Участник № / Member № 6246


Icon 1 отправлено / posted      Профиль для / Profile for Ave Oleg           Редактировать/удалить сообщение / Edit/Delete Post 
Делаю выводы, что как-то нужно использовать переменную @Message через генерацию сообщений.
Сообщения / Posts 87 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Недостоверность каналу CALL.SQL выставляется только в том случае, когда ODBC-драйвер вернет сообщение об отсутствии возможности принять и передать SOL-запрос, т.е. по ошибкам сугубо интерфейсного характера.
О результатах разбора запроса и выполнении самого запроса в БД интерфейс ODBC-драйвера не сообщает.
Если недостоверность выставлена, то можно сформировать соответствующее сообщение и на экране, и в ОТ (в том числе и через переменную @Message.

Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ave Oleg
Active Forum Member / Активный участник форума
Участник № / Member № 6246


Icon 1 отправлено / posted      Профиль для / Profile for Ave Oleg           Редактировать/удалить сообщение / Edit/Delete Post 
Для проверки, делаю запись данных в таблицу напрямую через программу управления данными HeidiSQL. При выявлении дубликата выходит ошибка (#1062 – Duplicate entry ’??′ for key ‘PRIMARY’) Хорошо здесь работает.
Но при запросе от TraceMode сообщение об ошибке нигде не появляется.
Не отсылается ли ошибка назад в TraceMode?
Если возможно да, то как можно применить переменную @Message?

Нашел в справке DEC-коды ошибок, диагностируемых МРВ (для CALL.SQL) - ERR_RT_WRITE (ошибка записи).
Или все же это ошибка интерфейсного характера?

Сообщения / Posts 87 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Если ODBC-драйвер возвращает Trace Mode 6 сообщение об ошибке, оно должно быть зафиксировано в атрибуте 92, I2.
При этом каналу выставляется признак недостоверности (атрибут 4).
При получении признака недостоверности можно программно сгенерировать нужное Вам сообщение для записи. например, в ОТ. Или индицировать эту ситуацию на экране.

Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ave Oleg
Active Forum Member / Активный участник форума
Участник № / Member № 6246


Icon 1 отправлено / posted      Профиль для / Profile for Ave Oleg           Редактировать/удалить сообщение / Edit/Delete Post 
Не совсем ясно "...Или индицировать эту ситуацию на экране..." ?
Сделал следующее, но не знаю как быть дальше?
Создал аргумент экрана с привязкой к тексту. Привязал этот аргумент к базе данных по атрибуту 92,I2.
В свойствах базы данных установил атрибут 4 Достоверность.

Сообщения / Posts 87 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
ГЭ "Текст" надо привязать к атрибуту 4 канала CALL.SQL.
В свойстве "Текст" выбрать, например, ВИД_ИНДИКАЦИИ = "Arg=Конст" и настроить вывод текстового сообщения в зависимости от того, равно ли 0 значение этого атрибута.
Можно использовать не "Текст", а какой-либо из цветовых атрибутов этого ГЭ.

Если атрибут 92,I2 действительно возвращает некий код ошибки, можно построить аналогичную индикацию, которая будет определяться значениями возвращаемых кодов ошибки. При том можно воспользоваться видом индикации, например, "Набор{Arg = Конст}".

Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Ave Oleg
Active Forum Member / Активный участник форума
Участник № / Member № 6246


Icon 1 отправлено / posted      Профиль для / Profile for Ave Oleg           Редактировать/удалить сообщение / Edit/Delete Post 
Не ясно.
Аргумент текста на экране привязали к атрибуту канала CALL.SQL 4)Достоверность. А что нужно делать с атрибутом 92,I2?

Сообщения / Posts 87 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Если ODBC-драйвер возвращает ненулевой код ошибки, он будет отображен в атрибуте 92,I2.
Вы можете затем расшифровать его по описанию кодов ошибок из документации на установленный драйвер ODBC.
Далее можно поступать с этой информацией по своему усмотрению: либо выводить этот код на экран или (программно) в Отчет тревог, либо, как было предложено выше, настроить индикацию на экране (текстовую или цветовую) по известным Вам расшифровкам кодов ошибок, возвращаемых драйвером ODBC.

Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Послать новую тему / Post New Topic  
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
Открыть тему / Open Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2