Сейчас пока остановился на топоровом варианте, где из юникода тупо русские символы распознаются. Но хотелось бы, чтобы отображались все символы.
BOOL InsertBlogInDB(LPCSTR lpcszLink2Blog, LPCSTR lpcszTitle, DWORD dwLocale)
{
SQLHANDLE hStmt;
SQLRETURN ret;
char szTitle[SIZE_TITLE];
char szQuery[MAXSIZE_QUERYSTR];
if (0 == lstrcmp(szLikeLocale, "ru"))
{
lstrcpy(szTitle, lpcszTitle);
for (int i = 0, k = 0; szTitle[i]; k ++)
{
if (szTitle[i] < 0)
{
szTitle[k] = (szTitle[i] + 48) * 64 + szTitle[i + 1] + 48;
i += 2;
}
else
{
szTitle[k] = szTitle[i];
i++;
}
}
szTitle[k] = 0;
}
ret = SQLAllocHandle(SQL_HANDLE_STMT, hConn, &hStmt);
if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret)
return FALSE;
wsprintf(szQuery, "INSERT INTO index (url, title, locale) VALUES ('%s', '%s', %d)", lpcszLink2Blog, szTitle, dwLocale);
ret = SQLExecDirect(hStmt, (SQLTCHAR *) szQuery, lstrlen(szQuery));
if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret)
return FALSE;
SQLFreeHandle(SQL_HANDLE_STMT, hStmt);
return TRUE;
}
---
Хотелось бы вместо функции wsprintf поставить какую-нибудь другую функцию. чтобы в szQuery вставилась юникодная строка. Есть такая?
|