Главная страница
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.011 c
8-65182
OLG
2002-02-06 08:22
2002.06.20
Нужен ваш совет


3-64972
Esipenko
2002-05-28 13:22
2002.06.20
Создание таблиц в Advantage


7-65256
vet
2002-03-21 11:39
2002.06.20
Мастера!!!!!!! Пожалуйста!!!!! (работа с модемом в voice-режиме)


1-65021
ivlex
2002-06-09 10:20
2002.06.20
О горячих клавишах


3-64957
Darker
2002-05-14 16:15
2002.06.20
TreeView c БД (master-detail-detail-detail-...)