Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.20;
Скачать: CL | DM;

Вниз

Что за ошибка такая?   Найти похожие ветки 

 
diww   (2002-05-28 15:37) [0]

EDBEngineError: General SQL Error: arithmetic exception, numeric overflow or string truncaction. Cannot transliterate character between character sets.
Происходит во время Query.Open. В запросе - select .. from .. where .. order. В Query есть несколько вычисляемых полей. Когда-то давно все работало. Сейчас пробовал на 2-х компах - выдает эту ошибку. Если удалить все поля в Query ошибка остается.
Как с этим бороться?


 
Johnmen ©   (2002-05-28 15:43) [1]

Убей Query и создай его заново...


 
Nikolay M. ©   (2002-05-28 17:02) [2]

А текст запроса из SQL Explorer выполняется? Если да, то действительно пересоздай Query, если нет, коцай текст запроса до тех пор, пока не заработает...

ЗЫ
по-моему, надежнее делать не
Query.Open, а
Query.Active := False;
Query.Active := True;
так не рискуешь получить ексепшн, если Query уже открыта...


 
Johnny Smith ©   (2002-05-28 17:17) [3]

IB возвращает такую ошибку, когда идет попытка поместить некое значение в переменную меньшей длины. Я в свое время сталкивался с ней, когда в хранимой процедуре переменной, скажем, строковой с длиной в 30 символов присваивалось значение поля длиной в 50 символов (Varchar). Причем если оно было меньше или равно 30 симв., то все проходило на "ура", что не позволило "с лету" разобраться в ситуации.


 
Johnmen ©   (2002-05-28 17:22) [4]

>Johnny Smith ©

Если быть чуточку внимательней, то в вопросе указан select ...


 
Johnny Smith ©   (2002-05-28 17:30) [5]

А вы не в курсе, что в IB обращение к SP также может идти через select ?


 
Johnmen ©   (2002-05-28 17:45) [6]

>Johnny Smith © (28.05.02 17:30)

В курсе....Да только автор об этом не упоминал....
(И вообще, не надо мне выкать - не люблю...:))))



 
diww   (2002-05-28 17:58) [7]

Разобрался в чем причина проблемы.
Возникает она ещё на стадии создания одной из View. При попытке ее просмотра через SQL Explorer появляется то же сообщение.
В View есть поле задаваемое как обьединение нескольких полей бд (field1 || field2 || field3). Если убрать одно из этих полей, то вьюшка нормально создается (а прорамма дальше работает криво). Так что, наверное, Johnny Smith © (28.05.02 17:17) прав насчет длин переменной.
Но раньше как-то ведь работало (Давно и на другом компе). Наверное, можно как-то настроить максимальный размер поля?
Подскажите, плиз!


 
Praco ©   (2002-05-28 18:09) [8]

Johnny Smith © (28.05.02 17:17)
Прав, однозначно.
Например, одно из полей в select, типа char(20)
преобразовывается в cast(field as char(10))
Если есть поля реально длинее 10 - будет ошибка. Если нет - запрос пройдет. SQL Explorer такие записи (>10) не покажет, WISQL - даст ошибку. В IB старше 4.21 не проверял.
Иногда эта ошибка выскакивала у меня при непонятных сбоях IB(похоже, сетка глючила).

diww (28.05.02 17:58)
Возможно, поля разных типов - char, varchar


 
Val ©   (2002-05-28 19:15) [9]

а может дело в неверно указанной кодировке?



Страницы: 1 вся ветка

Текущий архив: 2002.06.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
1-65043
kito
2002-06-10 08:46
2002.06.20
Как правильно скрыть приложение ?


3-64894
Cyrus
2002-05-29 10:03
2002.06.20
IBStoredProc+DBGrid


1-65144
pusrg
2002-06-06 22:56
2002.06.20
Не работает метод EndDrag


3-64930
Chainik
2002-05-27 10:41
2002.06.20
Проблема даты


3-64974
fgh
2002-05-28 12:58
2002.06.20
Как выбрать записи из бд1, которых нет в бд2 ?