УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

[BugFixed] PostgreSQL. Ошибка запуска транзакции.


Автор Сообщение
Сообщение создано: 11. 12. 2012 [09:59]
trotila
Юрий
Создатель темы
Зарегистрирован(а) с: 09.04.2012
Сообщения: 10
Здравствуйте. Обнаружил следующую ошибку при сохранении в БД PostgreSQL:
1|/WorkStation/sub_DAQ/mod_LogicLev/cntr_abcdeabcdeabcdeabcde/ | Сохранение конфигурации контроллера!
3|/WorkStation/sub_BD/mod_PostgreSQL/db_test/ | Ошибка запуска транзакции!


Лог PostgreSQL:
2012-12-11 11:31:32 MSK ERROR: current transaction is aborted, commands ignored until end of transaction block
2012-12-11 11:31:32 MSK STATEMENT: BEGIN
2012-12-11 11:36:15 MSK ERROR: value too long for type character varying(30)
2012-12-11 11:36:15 MSK STATEMENT: INSERT INTO "DAQ_LogicLev" ("ID" ,"NAME" ,"ru#NAME" ,"DESCR" ,"ru#DESCR" ,"ENABLE" ,"START" ,"REDNT" ,"REDNT_RUN" ,"PRM_BD" ,"PRM_BD_REFL" ,"PERIOD" ,"SCHEDULE" ,"PRIOR" ) VALUES (E'abcdeabcdeabcdeabcde' ,E'abcdeabcdeabcdeabcde' ,E'abcdeabcdeabcdeabcde' ,E'' ,E'' ,E'0' ,E'0' ,E'0' ,E'<high>' ,E'LogLevPrm_abcdeabcdeabcdeabcde' ,E'LogLevPrmRefl_abcdeabcdeabcdeabcde' ,E'0' ,E'1' ,E'0' )
2012-12-11 11:36:15 MSK ERROR: current transaction is aborted, commands ignored until end of transaction block
2012-12-11 11:36:15 MSK STATEMENT: BEGIN


Описание ошибки:

В модуле QTCfg после создания контроллера DAQ_LogicLev с именем "abcdeabcdeabcdeabcde" (20 символов), в следующих полях имеем значения:
Таблица параметров по шаблону: LogLevPrm_abcdeabcdeabcdeabcde (30 символов)
Таблица параметров для отражения: LogLevPrmRefl_abcdeabcdeabcdea (30 символов)
После выполнения действия "Сохранить в БД", происходит ошибка.

Соответствующие поле таблицы БД PRM_BD_REFL имеет тип character varying(30).
В поле конфигурации контроллера, модуля QTCfg Таблица параметров для отражения: строка длинной 30 символов.
В соответствующие поле таблицы БД, происходит запись строки "LogLevPrmRefl_abcdeabcdeabcdeabcde" длинной 34 символа.

Проверялось на версии PostgreSQL 8.4.9, 9.1, версии OpenSCADA 0.8.4.


[Сообщение редактировалось 1 раз(а), в последний раз 11.12.2012 в 10:00.]
Сообщение создано: 11. 12. 2012 [11:04]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"trotila" wrote:

Соответствующие поле таблицы БД PRM_BD_REFL имеет тип character varying(30).
В поле конфигурации контроллера, модуля QTCfg Таблица параметров для отражения: строка длинной 30 символов.
В соответствующие поле таблицы БД, происходит запись строки "LogLevPrmRefl_abcdeabcdeabcdeabcde" длинной 34 символа.

Исправлено:
- DB.PostgreSQL: Добавлена обрезка строк при записи до задекларированной длины
- DAQ.LogicLev: Размер полей БД "PRM_BD" и "PRM_BD_REFL" расширен до 40 и 50 символов соответственно.

В стабильную ветку смержу позже.

Learn, learn and learn better than work, work and work.



6569