Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Для embedded сервера ошибка запроса c кирилицей, Запрос с LIKE не работает с кирилицей 
:(
    Опции темы
andma
Дата 26.9.2008, 18:55 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.9.2008

Репутация: нет
Всего: нет



Попытка выполнить запрос типа: 
  
Код

select name from A where UPPER(name) like '%ДУМА%'

приводит к возникновению ошибки: 
Project DTI.exe raised exception class EODBCNativeException with message
'[AnyDAC][Phys][ODBC][ODBC Firebird Driver][Firebird] arithmetic exception,
numeric overflow, or string truncation.
Cannot transliterate character between character sets.' 
Process stopped. Use Step or Run to continue.
Ошибка возникает только если строка поиска содержит 
символы кирилицы! /FireBird 1.5.2 
Способ доступа:   Delphi 7, AnyDAC Framework V 1.12.2,
  Firebird ODBC Driver v 2.0 (IBPhonix http://www.ibphoenix.com/idpl.html)
  Как устранить ошибку? С уважением Андрей.
PM MAIL   Вверх
Akella
Дата 26.9.2008, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(andma @  26.9.2008,  18:55 Найти цитируемый пост)
Cannot transliterate character between character sets.' 

а гугл что говорит?

Добавлено @ 23:36
andma, сейчас мы подключимся к космосу, достанем бубны и начнём медитировать... отгадав некоторые параметры и свойства базы, таблиц и полей.... спустя десять тысяч лет мы дадим тебе ответ на вопрос smile ок?

Добавлено @ 23:39
Ну вот я понимаю раньше как только появился рунет, зарождались форумы, блоги и т.д. люди не умели этим всем пользоваться. Но уже прошло прилично времени, лет, наверное, 10. Неужели нельзя как-нибудь более грамотно научиться задавать вопросы? Чтобы получить хоть сколько-нибудь полный и грамотный ответ. А так получается: на любой вопрос - любой ответ.

Добавлено @ 23:49
Ты создал базу/таблицу/поле в одной кодировке, а запрос в другой.

Ладно, будем вытягивать у тебя информацию клещами.
1. В какой кодировке создана база?
2. В какой кодировке создана таблица?
3. В какой кодировке созданы поля?
4. Какой порядок сортировки (Collate) применён 
Скрипты создания можно посмотреть? Если, конечно, это не коммерческая тайна.
5. Что говорит гугл на тему: Cannot transliterate character between character sets ?

Вот, что я нагуглил:
http://www.sql.ru/forum/actualthread.aspx?tid=421928
http://www.sql.ru/forum/actualthread.aspx?tid=585548
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=61048


Ну и, конечно, о работе с русскими буквами в InterBase/Firebird
http://www.realcoding.net/article/view/2202
http://www.ibase.ru/devinfo/ibrusfaq.htm

Немного о том, что такое Collate
http://www.nabble.com/COLLATE-PXW_CYRL-td10530526.html


Ну и вот на закуску
http://forum.vingrad.ru/faq/topic-157246.html

Это сообщение отредактировал(а) Akella - 27.9.2008, 00:18
PM MAIL   Вверх
jsa
Дата 29.9.2008, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 1
Всего: 20



Akella, жжеш  smile, наверное раз и навсегда отбил охоту у человека пользоваться форумами, хотя... я с тобой полностью согласен

Добавлено через 34 секунды
сори за флуд


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
Akella
Дата 29.9.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



andma, не обижайтесь, пожалуйста, со временем вы научитесь задавать вопросы и пользоваться форумами, и добро пожаловать в семью Винграда smile 
PM MAIL   Вверх
andma
Дата 29.9.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.9.2008

Репутация: нет
Всего: нет



Цитата

1. В какой кодировке создана база?

SET NAMES WIN1251;
CREATE DATABASE 'digital:D:\Users\aHT0xa\NAUKA\Data\NAUKAFB.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 1024
DEFAULT CHARACTER SET WIN1251;
Цитата

2. В какой кодировке создана таблица?
3. В какой кодировке созданы поля?
4. Какой порядок сортировки (Collate) применён 

SET NAMES WIN1251;
CREATE GENERATOR I_PYT_NTR_SEQ;
CREATE TABLE I_PYT_NTR (
    PK                DOUBLE PRECISION NOT NULL,
    NAME              VARCHAR(2048) COLLATE WIN1251_UA,
    BASE              VARCHAR(2048) COLLATE WIN1251_UA,
    NUM_PYT           NUMERIC(2,0),
    ID_R_PIDROZDIL_V  DOUBLE PRECISION,
    ID_I_ZAS_NTR      DOUBLE PRECISION NOT NULL,
    DATA_PROP         DATE
);

Конечно не тайна! Какие скрипты еще нужны?
Цитата

5. Что говорит гугл на тему: Cannot transliterate character between character sets ?

Спасибо з ссылочки, изучаю.

Добавлено через 9 минут и 34 секунды
В настройках ODBC: 
"Символьная таблица: NONE" (иначе нет связи)
Еще особенность:
тот же запрос с кирилицей для удаленного сервера работает без ошибки.
PM MAIL   Вверх
Akella
Дата 29.9.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(andma @  29.9.2008,  13:49 Найти цитируемый пост)
 NAME              VARCHAR(2048) COLLATE WIN1251_UA,
    BASE              VARCHAR(2048) COLLATE WIN1251_UA,

COLLATE должен быть PXW_CYRL


Код

CREATE TABLE NEW_TABLE (
    ID INTEGER,
    NAME VARCHAR(10) CHARACTER SET WIN1251 COLLATE PXW_CYRL)


а вообще я бы рекомендовал работать с доменами

Добавлено через 12 минут и 39 секунд
Цитата(andma @  29.9.2008,  13:49 Найти цитируемый пост)
"Символьная таблица: NONE" (иначе нет связи)

очень странно
А в энидакс есть какая-нибудь информация по поводу кодировки подключения к жарптице?
Может легче использовать стандартные компоненты IBX или FibPlus?
В IBExpret`e кодировку при подключении какую указываешь?
PM MAIL   Вверх
andma
Дата 3.10.2008, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.9.2008

Репутация: нет
Всего: нет



Цитата

COLLATE должен быть PXW_CYRL

пробовал, результат: ошибка таже
Цитата

А в энидакс есть какая-нибудь информация по поводу кодировки подключения к жарптице?

Пытался найти... такое впечатление, что нету...
Цитата

Может легче использовать стандартные компоненты IBX или FibPlus?

Может и так, да времени на переделку нет. Отказался от поиска по строковым полям. (Пусть cxGrid ищет встроенными фильтрами).
Цитата

В IBExpret`e кодировку при подключении какую указываешь?

Из IBExpret подключиться к embeded серверу не удалось (с любой кодировкой).
А к удаленному серверу: Font Character set = RUSSIAN_CHARSET



PM MAIL   Вверх
Akella
Дата 6.10.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(andma @  3.10.2008,  17:44 Найти цитируемый пост)
А к удаленному серверу: Font Character set = RUSSIAN_CHARSET

а разве правильно не WIN1251?

Добавлено через 1 минуту и 24 секунды
Цитата(andma @  3.10.2008,  17:44 Найти цитируемый пост)
Из IBExpret подключиться к embeded серверу не удалось (с любой кодировкой).

Встраиваемый сервер поддерживает одновременно только одно клиентское подключение. Через какую библиотек подключался? Были ли отключены все остальные от базы под управлением embeded сервера?

пробуй установить жарптицу 2.0.4
PM MAIL   Вверх
Deeptown12
Дата 30.4.2009, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



Скопируйте для Embedded в каталог с программой каталог intl взятый с FireBird и проблема отпадет
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0750 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.