Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Arithmetic overflow... Проблема с длиной строки  [new]
PATRI0T
Member

Откуда: Майкоп
Сообщений: 83
Добрый день..
Подскажите пожалуйста.
Вот, записываю в таблицу значение, которое является описанием ошибки (Err.Description возникающий после ошибки ADODB).
Пишу следующее
автор
"Err:Не удается обновить запрос, поскольку он не содержит доступные для поиска столбцы, которые могут быть использованы в качестве ключевых."

в поле "FAIL_CAUSE". Длина сообщения 139 символов, само поле - varchar(500)
Кодировка по умолчанию win1251.. Пишу вроде как тоже ее. Пишет успешно, но при попытке в ibexpert просмотреть таблицу выводит это сообщение
автор
Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets

При этом, если я обрезаю сообщение до 100 символов, то все нормально работает. Обрезал хоть слева, хоть справа, все равно..
Вроде даже в FAQ есть (https://www.sql.ru/faq/faq_topic.aspx?fid=297), но что-то не помогает..
Скрипт таблицы:
CREATE GENERATOR GEN_ORDER_STATUSES_ID;

CREATE TABLE ORDER_STATUSES (
    ID              INTEGER NOT NULL,
    ORDER_ID        INTEGER,
    MANAGER         VARCHAR(50),
    STATUSNUM       FLOAT,
    CURRENT_STATUS  SMALLINT,
    DESCRIPTION     VARCHAR(100),
    PROG_FULLPATH   VARCHAR(100),
    FAIL_CAUSE      VARCHAR(500),
    TIME_STAMP      TIMESTAMP,
    COMMENT         VARCHAR(200)
);


Что может быть не так?
12 апр 19, 17:43    [21860744]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
Dmitry Kurbsky
Member

Откуда:
Сообщений: 161
PATRI0T
поле - varchar(500)


Давно стало 500? Как менял длину поля?
12 апр 19, 17:53    [21860754]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
AltHasp
Member

Откуда:
Сообщений: 98
PATRI0T,

Тут наверное главное это
Cannot transliterate character between character sets


Мало информации.
- Версия FB/IB ?
- Рег.инфу подключения IBExpert (небось что-то типа UTF8, а нужно вам WIN1251).
- С каким CodePage создавалась БД ?
- Какой версии IBExpert (может с прошлого века)?
13 апр 19, 06:35    [21861006]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28015
AltHasp
- С каким CodePage создавалась БД ?

вот это что за вопрос такой? Вы в курсе, что "кодовая страница БД" это просто дефолт чарсета для новых строковых и блоб столбцов?
Смотреть надо чарсет столбца, а не базы.
13 апр 19, 12:35    [21861102]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
PATRI0T
Member

Откуда: Майкоп
Сообщений: 83
Новые данные подъехали..
Все таки ошибка не в базе, а в IBExpert-e..
При обрезании строки проблем с выводом не возникает.. но это же не гоже так..

select
    os.id,
    os.time_stamp,
    os.comment,
  left(os.fail_cause,101) <================= Макс длина. При большей строке вылетает ошибка.
 from order_statuses os where os.id > 7400


IBExpert 2017.12.11.1
Firebird 2.5.1.26351
кодовая страница базы и полей таблицы одинаковая, WIN1251
настройки подключения IBExpert: Кодировка заблокирована, стоит WIN1251, набор символов экранного шрифта RUSSIAN_CHARSET

автор
Давно стало 500? Как менял длину поля?

- нет, только делаю эту таблицу, Сначала была длина поля 200, потом при возникновении ошибки увеличил на 500, не помогло

Мои предположения: т.к. я пытаюсь записать текст сообщения об ошибке, может какая-то проблема с кодовой страницей этого текста? Может она в самом деле UTF8? И как тогда нужно подключаться к базе, чтобы не было проблем с этим?
Или я не туда думаю?
15 апр 19, 11:55    [21862212]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28015
PATRI0T
IBExpert 2017.12.11.1

первым делом надо было обновить.
PATRI0T
Может она в самом деле UTF8?

так посмотри.
15 апр 19, 12:13    [21862255]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
PATRI0T
Member

Откуда: Майкоп
Сообщений: 83
это и был вопрос... а как посмотреть, что за строка?
Ее возвращает ADO... сохраняю как есть..
15 апр 19, 15:16    [21862627]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28015
PATRI0T,

"посмотреть" имелось в виду в ibexpert. структуру таблицы, но так чтобы были видны чарсеты столбцов.
15 апр 19, 16:13    [21862725]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47677

PATRI0T
а как посмотреть, что за строка?

Вывести (шестнадцатеричный) код каждого символа, а потом использовать глазки.

Posted via ActualForum NNTP Server 1.5

15 апр 19, 17:21    [21862850]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
PATRI0T
Member

Откуда: Майкоп
Сообщений: 83
В самой базе все правильно вроде...
PS. обновил IBExpert до 2019.4.14.. все равно

К сообщению приложен файл. Размер - 29Kb
16 апр 19, 08:41    [21863228]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
AltHasp
Member

Откуда:
Сообщений: 98
PATRI0T,

Вам же уже ответили.
1) Сохраните ваше "подозрительные строки" в файл в редакторе, который понимает юникод.
2) Посмотрите, что туда впихнуто, по-символьно или если вам не нужен юникод, конвертируйте в не-юникод и после отправьте (запишите) в базу.

Как-то так.
16 апр 19, 14:29    [21863794]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
AltHasp
Member

Откуда:
Сообщений: 98
PATRI0T,

А может у вас в строке всякие #13#10#9 - символы ? И их вам надо кастрировать для надежности.
16 апр 19, 14:31    [21863797]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30037

16.04.2019 14:31, AltHasp пишет:
> А может у вас в строке всякие #13#10#9 - символы ? И их вам надо кастрировать для надежности.

иди на кошечках тренируйся, мечтатель

Posted via ActualForum NNTP Server 1.5

16 апр 19, 14:35    [21863808]     Ответить | Цитировать Сообщить модератору
 Re: Arithmetic overflow... Проблема с длиной строки  [new]
AltHasp
Member

Откуда:
Сообщений: 98
Как будищь гатовить щащлик из эта невеста - не забут пиригласит!
16 апр 19, 18:16    [21864170]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить