Увеличении длины вводимой строки

Стартовая страница Форумы Разработка и интеграция Увеличении длины вводимой строки

Просмотр 15 сообщений - с 1 по 15 (из 29 всего)
  • Автор
    Сообщения
  • #8966
    Bolg
    Участник

    Стоит задача в Администраторе в таблице размерности в столбце Обозначение ввести длинный текст, который превышает 100 символов. Пытался программно снять это ограничение меняя MaxValue. но теперь выдает ошибку конвертации:
    Ошибка при сохранении изменений базы данных: The data was truncated while converting from one data type to another. [Name of function(if know)=].
    Как можно решить данную проблему?

    #8975
    Mikhail
    Модератор

    Не рекомендую данный подход, потому что он будет постоянно порождать проблемы в будущем.
    Если у Вас много вариантов строковых значений, то лучше использовать формулу для получения строки и установить строковый формат канала. Однако будет ограничение на длину значения 8 латинских символов или 4 юникод (русских)

    #9011
    Bolg
    Участник

    Вы имеете ввиду нужно прописать формулу в самом Администраторе или в исходном коде?

    #9013
    Mikhail
    Модератор

    Имею ввиду в таблице Формулы в Администраторе.

    #9029
    Bolg
    Участник

    Воспользовался вашим советом, вроде сработало, но все же остается вопрос, как увеличить выводимую строку(если, допустим, она длиннее 8 символов)? и еще, наблюдается некий баг, в некоторых случаях при работе с ascii первый символ выводимого значения отличается от заданного, например в данном примере 3 элемент массива при выводе получается: «fgg»

    public String IntToStr()
    {
    int x = Convert.ToInt32(Cnl);
    string[] str = new String[3]{«Loog»,»aaa1″,»ggg»};
    String s = Convert.ToString(EncodeAscii(str[x]));
    return s;
    }

    #9030
    Mikhail
    Модератор

    Длиннее 8 символов только заранее заданная размерность.
    Вы могли бы максимально упростить пример, но чтобы проблема при этом сохранялась?
    Что будет если просто подставить EncodeAscii("ggg") ?

    На самом деле Вам не надо использовать Convert. Во входной канал должен попадать результат работы EncodeAscii

    • Этот ответ был изменен 6 лет назад от Mikhail.
    #9422
    Romiros
    Участник

    А действительно, нельзя ли увеличить в будущем длину этой строки?
    Сам сегодня столкнулся. У меня 17 возможных состояний объекта и это в 100 символов нормально не уместить.

    #9428
    Mikhail
    Модератор

    Если Вы имеете ввиду длину строки в таблице Размерности, то при следующем изменении формата базы конфигурации нужно будет увеличить. Другой вариант — вынести состояния в отдельную таблицу, но возможно, это будет не так удобно при редактировании.

    #9437
    Romiros
    Участник

    Можно реализовать оба варианта :).
    Просто, если увеличение длины строки не потянет больших переделок в ядре, сделайте пожалуйста.
    А по-хорошему наверное действительно должна быть отдельная таблица.

    #9454
    Mikhail
    Модератор

    Наверное, это будет не очень скоро, потому что в этом году планируется разрабатывать новый Администратор, а он должен быть совместим с существующим. Есть возможность сейчас как-то обойти проблему?

    #9497
    Romiros
    Участник

    Я сделал дикими сокращениями. Типа ГР, ХР,
    М-К и так далее всего 17.
    Хрень конечно, но жить можно. По хорошему надо расширять возможности. Это получается протоколирование событий, которое надо расшифровывать 🙂

    #9537
    Mikhail
    Модератор

    Вы можете с помощью формулы возвращать строку из 4 русских символов и использовать соответствующий формат канала.

    #9544
    Romiros
    Участник

    К сожалению четыре символа не помогут.
    По-хорошему нужна таблица для протоколирования событий с возможностью задавать цвет текста. Пока обхожусь статусом и формулами, но много лишних действий :).

    #9551
    Mikhail
    Модератор

    нужна таблица для протоколирования событий с возможностью задавать цвет текста

    Если не трудно, опишите подробнее, что хотелось бы видеть.

    #9558
    Romiros
    Участник

    В свойствах канала столбец протоколирование. Он ссылается на таблицу шаблонов протоколирования. В ней пользователь сам создаёт нужный шаблон (протоколирование для состояний кранов, насосов, вентиляторов и других объектов). А в каждом таком шаблоне набор состояний по аналогии как у Вас сделан светодиод на схемах. То-есть условие, текст состояния, цвет текста.
    Получается, что две таблички нужно.

Просмотр 15 сообщений - с 1 по 15 (из 29 всего)
  • Вы должны авторизироваться для ответа в этой теме.