Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MySQL - Illegal mix of collations

23K
10 декабря 2006 года
meskallito
4 / / 04.12.2006
У меня такой вот вопрос:

Есть база. Кодировка для нее, и таблиц прописана как cp1251. Колейт сp1251_ukrainian_ci. В клиентской программе есть участок кода который засовывает запрос в ADOQuery и активирует его. Так вот первый раз при старте программы этот участок кода проходит нормально, результаты запроса видны на экране. А если вызвать его чуть позже кнопкой, то получаю следующую ошибку:
Illegal mix of collations (cp1251_ukrainian_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='

Помогите разобраться в чем тут дело. Колейт и кодировка прописана для каждой колоники и латином там не пахнет.

Вот участок кода установки соединения

 
Код:
BDDataModule->ADOConn->Open();
BDDataModule->ADOConn->Execute("SET charset cp1251");
BDDataModule->ADOConn->Execute("set collation_connection='cp1251_ukrainian_ci'");


А это тот самый который генерирует ошибку (но только, повторюсь, на второй раз)

 
Код:
BDDataModule->ADOQuery_N1->Close();
BDDataModule->ADOQuery_N1->SQL->Clear();
BDDataModule->ADOQuery_N1->SQL->Text="SELECT * FROM books_fund WHERE section in (SELECT section_id FROM sections WHERE section_name IN ('Розділ 1', 'Розділ 2'));";
BDDataModule->ADOQuery_N1->Open();


Заранее спасибо, за любой ответ
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог