Выборка из базы данных в UNICODE
Есть база данных (MS Access) в которой имеется слово - ušepra. (на языке Х)
Когда я беру это слово из базы данных оно превращается в usepra!!!
(т.е. отсекается шляпка над буквой s).
Вот код:
CDatabase db();
db.OpenEx(strPath);
CRecordset rs(&db);
CString str;
str.Format(”SELECT name FROM mytable WHERE id=1”);
rs.Open(CRecordset::snapshot, str);
rs.GetFieldValue(”name”, str);
rs.Close();
db.Close();
что я только не делал. Ну во первых объявил
#define _UNICODE
во вторых изменил точку входа программы на wWinMainCRTStartup
далее нашел в MSDN:
BUG: UNICODE Issue When MFC ODBC Is Used with the SQL Server ODBC Driver
ID: Q249803
Там сказано, что если переопределить класс CRecordset и некоторые функции в нем то все будет ОК, но у меня ничего не получается. Если кто ни будь, сталкивался с данной проблемой то подскажите, как лучше поступить. Заранее всем спасибо.
неужели никто не сталкивался с данной проблеммой?
Наследовть CRecordset нужно для того, чтобы сделать работу с БД максимально удобной, а не для того, чтобы "было всё ок". Попробуй - должно понравиться. (Add class...->MFC ODBC consumer).
#define _UNICODE
CString автоматически хранит unsigned short а не char
переопределение для того, чтобы решить проблемму выборки и DB в формате UNICODE. Но проблемма была не в этом. На самом деле и проблеммы то не было. Просто надо было в настройке региональности указать язык который должен поддерживать UNICODE.
А за ответ спасибо.
А где это "настройка региональности" находиться у меня похожая проблема