在ole db中,獲取表的結構資訊
m_pColumnset = new CColumns;
HRESULT hr = m_pColumnset->Open(m_session, NULL, NULL, lpszName);
while (pDoc->m_pColumnset->MoveNext() == S_OK)
{
CString strValue;
// always insert the column name
strValue=https://bbs.csdn.net/topics/pDoc->m_pColumnset->m_szColumnName;
}
在這個m_pColumnset->m_szColumnName,如果表欄位是中文的就無法取得正常,它的定義是 TCHAR,但實際中不是,微軟的自己例子也存在這個問題,把sample編譯為unicode也解決不了,有啥路辦法沒有
uj5u.com熱心網友回復:
要看資料庫端的設定,UNICODE不行, 試試UTF8
uj5u.com熱心網友回復:
你資料庫中定義的是什么編碼格式的?uj5u.com熱心網友回復:
回樓上2位:資料庫是 access,資料庫內容可以正常讀出。出問題的是讀取表的欄位,就是 column的名稱出問題了,如果是中文的,變成了??,西文的沒有問題。
另外我找了access里面好象沒有表或欄位名稱的編碼設定。
uj5u.com熱心網友回復:
使用支持Unicode的odbc、ado、……uj5u.com熱心網友回復:
沒有吧?“使用支持Unicode的odbc、ado、……”?unicode不是通過修改工程屬性來實作的嗎?按你這么說oledb不就是廢了嗎?uj5u.com熱心網友回復:
odbc、ado底層dll分ANSI和Unicode兩個版本。我覺得。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/75378.html
標籤:數據庫
