Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 22:40   #1
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию Delphi2010 DBGrid win1251 вставка русских символов в базу (interbase)

Возник такой вопрос:
Пытаюсь добавить русские символы в базу данных.
База interbase
кодировка win1251

для английских символов вставка из delphi происходит нормально, при попытке вставки русских - ошибка:
arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets.


вставка из ibexpert происходит нормально и русских и английских символов...

Проблема, как я понимаю, в кодировке. Как исправить что бы избавиться от проблемы?
maLoy*508 вне форума Ответить с цитированием
Старый 02.12.2012, 22:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
кодировка win1251
Предположу что со стороны Делфи идет попытка вставки юникода, видимо потому строка и не вмещается, если ее удвоенная длина за пределы поля выходит.
Пробуй привести строку к ansistring или смени кодировку базы.

P.S. Кстати надеюсь ты при подключении к базе указываешь локаль?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2012, 22:49   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

INTERBASE какой версии?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.12.2012, 22:55   #4
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Предположу что со стороны Делфи идет попытка вставки юникода, видимо потому строка и не вмещается, если ее удвоенная длина за пределы поля выходит.
Пробуй привести строку к ansistring или смени кодировку базы.

P.S. Кстати надеюсь ты при подключении к базе указываешь локаль?
размер поля 200, пытаюсь вставить 1 символ
про локаль не совсем понял

Цитата:
Сообщение от Аватар Посмотреть сообщение
INTERBASE какой версии?
interbase 2009

p.s. использую стандартные компоненты IbDatabase, IbTable, DbGrid, DbNavigator
maLoy*508 вне форума Ответить с цитированием
Старый 02.12.2012, 23:04   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
про локаль не совсем понял
Когда я подключаюсь я пишу параметры:
Код:
      with Params do begin  Clear;
       Add('user_name=sysdba');add('password=masterkey');add('lc_ctype=WIN1251');
      end;
Где lc_ctype параметр локали, с которой подключаюсь к базе. Возможно тебе стоит его принудительно указать.
Цитата:
пытаюсь вставить 1 символ
В таком случае откуда уверенность что именно при вставке в это поле ошибка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2012, 23:09   #6
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Когда я подключаюсь я пишу параметры:
Код:
      with Params do begin  Clear;
       Add('user_name=sysdba');add('password=masterkey');add('lc_ctype=WIN1251');
      end;
Где lc_ctype параметр локали, с которой подключаюсь к базе. Возможно тебе стоит его принудительно указать.
вот это мне и нужно было -)
спасибо
maLoy*508 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод русских символов из MSSQL DimaKGD PHP 8 06.06.2015 10:09
Отображение русских символов mikhea Общие вопросы Delphi 3 24.11.2012 19:19
Кодировка русских символов Dеlphi Общие вопросы Delphi 6 26.07.2011 08:39
UnicodeString - кодирование русских символов. Freeman C++ Builder 3 15.06.2011 03:32