Сразу скажу что 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
)
)
Делаем бэкап. Переносим его на другой сервер. Параметры те-же - WInServer2003, Firebird 1.5.2.4721Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets.
Запрос срабатывает.
На первом сервере переустановили Firebird, результата 0.
Может быть ошибка в системном реестре первого сервера?