Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Проблемма


Автор: BlauTood 8.9.2004, 16:13
Создал домен DOL.
и в двух разных таблицах Field Name присвоил этот домен.
пытаюсь из одной таблицы пренести данные в другу таблицу, а она мне говорит.
Arithmetic overflow or division by zero has occurred. arithmetic
exception, numeric overflow, or string truncation. Cannot transliterate
character between character sets



Ввзято из FAQ!
Ошибка возникает из-за несовпадения кодировок при работе со строковыми полями.
Необходимо помнить следующие моменты:
1) Невозможно простой командой SQL типа UPDATE TAB SET TEXT1=TEXT2
скопировать знначения поля TEXT2 в поле TEXT1, если у них разная кодировка. (Кодировка везде одинаковая, так как использую для этого домен.)
2) Если явно не указана кодировка при создании текстового поля, то
поле создаётся с кодировкой по умолчанию. Проверить кодировку по
умолчанию вы можете запросом SELECT RDB$CHARACTER_SET_NAME FROM RDB$DATABASE. (пишет WIN1251)
3) Кодировка текстового поля должна совпадать с кодировкой,
указанной в параметре lc_type при подключении клиента (Это где находится???)

Кто сможет помочь новичку biggrin.gif

Автор: Vit 8.9.2004, 16:18
1) Покажи код

2) Надо бы указать какая база данных

3) Пожалуйста, не используй красный цвет в сообщениях - им обычно пользуются модераторы для указания нарушений.

Автор: BlauTood 8.9.2004, 16:37
тот что ты мне помог сделать!
База IB.

osn.ibtdol.Last;
osn.ibtdol.First;
while not osn.IBTDol.Eof do
begin
spso.gridspso.Columns.Items[4].PickList.add(osn.IBTDol.fieldbyname('DOL').AsString);
osn.IBTdol.Next
end;
osn.IBTDOl.First;

Автор: _hunter 9.9.2004, 10:53
Цитата
Кодировка текстового поля должна совпадать с кодировкой,
указанной в параметре lc_type при подключении клиента (Это где находится???)


находится в параметрах базы
установка:
IBDatabase.Params.Add('lc_ctype=WIN1251');
( но необходима предварительная проверка на существование )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)