![]() |
|
|
![]()
|
|
| andrew2006 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
Мне надо перенести данные таблицы Paradox в таблицу Intrbase.
Таблица Paradox содержит русские слова. При попытке программно вставить запись в Intrbase содержащую русские слова выдается ошибка "...exception EDBEngineError with message 'General SQL error. arithmetic exception,numeric overflow, or string truncation Cannot transliterate character between character sets'. Я использую компонент TQuery, формирую запрос insert into t(field0) values(:field0) и затем присваиваю Query->Params->ParamValues[ "field0" ] = val Переменная val содержит русское слово. Я попробовал вставить русский текст напрямую через Interactive SQL и все прошло нормально. Язык таблицы Paradox : Cyrr 866, Intrbase CYRL. Если кто встречался с такой проблемой подскажите пожалуйста. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
У Вас в Paradox не просто "русские слова" , а "русские слова" в DOS-кодировке. А в Interbase, как я подозреваю, стоит Windows - кодировка -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| andrew2006 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
Подскажите как это можно починить? Просто для Paradox я поменять язык не могу - мне изначально дали такую базу. Надо поменять язык для Intrbase? |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Возможно.
Ну лучше действовать по шагам. Шаг 1. Проверьте, что Вы читаете из Paradox. val - это тип AnsiString? если - да, то для начала попробуйте вывести его на экран
Если имеем "кракозябы", то у Вас что-то некорректно настроено в компонентах по работе с Paradox. Добавлено @ 13:12 Честно говоря, я никогда не работал не с Paradox, ни с Interbase. Просто пытаюсь логично рассуждать. У Вас в используемом драйвере Paradox какой LANGDRIVER установлен: dBASE RUS cp866 или оставили как было ascii' ANSI? -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| andrew2006 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
ShowMessage показывает нормальную строку. Честно говоря базу Paradox не я делал. Мне надо именно сделать программную конвертацию данных из Paradox в Intrbase. Я пытался найти CYRR 866 кодировку для Intrbase - когда создаю базу но там такой нет. Я создаю базу Intrbase через Interacive SQL. |
||||
|
|||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
А причем тут делал- не делал? Я говорил он настройке драйвера на Вашей машине. Но похоже с ним все у Вас в порядке. А там у Вас для Interbase нет чего то типа WIN1251 кодировки? Добавлено @ 11:10 Вот ответ на Ваш вопрос http://www.interbase-world.com/ru/articles/1612.php -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| andrew2006 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
Огромное спасибо!!! Вы мне очень помогли!!! |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |