Страница 1 из 1

Проблемма с кодировкой

Добавлено: 01 июл 2011, 12:28
maksobus
Добрый день уважаемые.
Сразу скажу что FAQ по работе с русскими буквами читал, но все же проблема имеет место быть

Имеется сервер - WInServer2003, Firebird 1.5.2.4721
При выполнении запроса

Код: Выделить всё

select 1 from prodlink where clientid=2000002 and
         (
          (
           udfuupper(prodsname) starting with 'НЕ СЕРТИФ'
           and :adocdate_out between
           case when udfutrim(udfugetpartstr(prodcode5,'',',',0)) like '__.__.____' then cast(udfutrim(udfugetpartstr(prodcode5,'',',',0)) as date) else null end
           and
           case when udfutrim(udfugetpartstr(prodcode5,'',',',1)) like '__.__.____' then cast(udfutrim(udfugetpartstr(prodcode5,'',',',1)) as date) else null end
          )
          or
          (
           udfuupper(prodsname) not starting with 'НЕ СЕРТИФ'
           and :adocdate_out between
           case when udfutrim(udfugetpartstr(prodcode4,'',',',0)) like '__.__.____' then cast(udfutrim(udfugetpartstr(prodcode4,'',',',0)) as date) else null end
           and
           case when udfutrim(udfugetpartstr(prodcode4,'',',',1)) like '__.__.____' then cast(udfutrim(udfugetpartstr(prodcode4,'',',',1)) as date) else null end
          )
         )
вылетает ошибка
Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets.
Делаем бэкап. Переносим его на другой сервер. Параметры те-же - WInServer2003, Firebird 1.5.2.4721
Запрос срабатывает.
На первом сервере переустановили Firebird, результата 0.

Может быть ошибка в системном реестре первого сервера?

Re: Проблемма с кодировкой

Добавлено: 01 июл 2011, 14:45
maksobus
Тему можно закрыть.
Переустановили на 1.5.6.5026, все заработало

Re: Проблемма с кодировкой

Добавлено: 01 июл 2011, 14:48
kdv
реестр до лампочки.
в чем ошибка - непонятно, т.к. сами же говорите, что после бекапа-рестора на другом сервере этой ошибки нет.
А blr процедур при бэкапе-ресторе не меняется, т.е. они не перекомпилируются.

Значит, или все же версии Firebird неодинаковые, или первая установка битая (или чего-то не хватает).
на первом сервере рестор из бэкапа тоже ошибку выдает?
dll udf абсолютно одинаковые?

p.s. 1.5.2 староват, вообще-то. 1.5.6 уже.