C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
MySQL — ODBC — Builder
meskallito
Отправлено: 09.12.2006, 18:13


Ученик-кочегар

Группа: Участник
Сообщений: 3



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

Помогите пожайлуста разобраться в чем тут дело
Romikgy
Отправлено: 10.12.2006, 13:23


Дежурный стрелочник

Группа: Участник
Сообщений: 72



имхо тяко что либо понять без кода твоего sad.gif
meskallito
Отправлено: 10.12.2006, 14:24


Ученик-кочегар

Группа: Участник
Сообщений: 3



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

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();

Больше никаких манипуляций с соединением или с запросом программа не делает.

Romikgy
Отправлено: 10.12.2006, 20:55


Дежурный стрелочник

Группа: Участник
Сообщений: 72



BDDataModule->ADOConn->Execute("SET charset cp1251");
BDDataModule->ADOConn->Execute("set collation_connection='cp1251_ukrainian_ci'");

это работает имхо только на сеанс связи с базой,
т.е. если закрыл ее , все настройки слетают , перед открытием делай эти строки заново
meskallito
Отправлено: 12.12.2006, 21:14


Ученик-кочегар

Группа: Участник
Сообщений: 3



Проблема решилась когда перенес все компоненты из датамодуля к себе на форму. Может я этот датамодуль както не так подключил. Хотя что там можно "не так подключить"...хз

Вернуться в Работа с базами данных в C++Builder