crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Выборка из MySQL в Utf8
Adun177
  опции профиля:
сообщение 25.2.2009, 9:26
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 25.2.2009
Пользователь №: 575

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день!
Установил MySql 6.0 и экспортировал в него из Аксесса мои таблицы
Сейчас я перевожу оконный интерфес и бд с windows на линукс
вопрос есть 2 таблицы vzvodes и soldiers представление в utf8
выборка замечательно работает заполняя соответствующий комбобокс
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));    
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QSqlQuery query("SELECT vzv_id,Vzv_name FROM Vzvodes", db);
if ( query.isActive() ) {
while ( query.next() ) {
     QString name = query.value(1).toString();
ui_IDC_COMBOVZV->addItem(name);
}
}

далее пользователь выбирает соответствующий взвод из комбобокса
другой комбобокс должен заполнится полями бойцов из сответствующего взвода
query3.exec(QString("SELECT Soliders.sol_Lname,Soliders.sol_id,Vzvodes.Vzv_name,Vzvodes.vzv_id FROM Soliders,Vzvodes WHERE Soliders.sol_Vzv_id=Vzvodes.vzv_id AND Vzvodes.Vzv_name=%1").arg(ui_IDC_COMBOVZV->currentText()));
if ( query3.isActive() ) {
while ( query3.next() ) {
    printf("111\n");
     QString name_sol = query3.value(0).toString();
    ui_IDC_COMBO2->addItem(name_sol);
}
}

но не работает эта выборка.
Можно конечно хранить и ключи но мне кажется это неправильно.
Подскажите кто сталкивался с этой проблемой.
Причина редактирования: используйте тэг code
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 25.2.2009, 10:04
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


"SELECT Soliders.sol_Lname,Soliders.sol_id,Vzvodes.Vzv_name,Vzvodes.vzv_id FROM Soliders,Vzvodes WHERE Soliders.sol_Vzv_id=Vzvodes.vzv_id AND Vzvodes.Vzv_name=%1"


А тут разве не надо %1 взять в кавычки, чтобы получилось что-то типа?:

SELECT Soliders.sol_Lname,Soliders.sol_id,Vzvodes.Vzv_name,Vzvodes.vzv_id FROM Soliders,Vzvodes WHERE Soliders.sol_Vzv_id=Vzvodes.vzv_id AND Vzvodes.Vzv_name='Perviy Vzvod'
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.2.2009, 10:11
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Adun177, покажи, что такое query3, как создается этот объект

Цитата(SABROG @ 25.2.2009, 13:04) *
А тут разве не надо %1 взять в кавычки, чтобы получилось что-то типа?:
очень даже может быть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Adun177
  опции профиля:
сообщение 26.2.2009, 15:23
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 25.2.2009
Пользователь №: 575

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо большое
действительно моя ошибка
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.4.2024, 17:10