在ole db中的CColumnsInfo问题?

隐者神归 2016-12-11 11:09:20
在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=pDoc->m_pColumnset->m_szColumnName;
}


在这个m_pColumnset->m_szColumnName,如果表字段是中文的就无法取得正常,它的定义是 TCHAR,但实际中不是,微软的自己例子也存在这个问题,把sample编译为unicode也解决不了,有啥路办法没有
...全文
1601 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-02-13
  • 打赏
  • 举报
回复
引用 5 楼 tiegerium 的回复:
没有吧?“使用支持Unicode的odbc、ado、……”?unicode不是通过修改工程属性来实现的吗?按你这么说oledb不就是废了吗?
odbc、ado底层dll分ANSI和Unicode两个版本。我觉得。
真如实观 2018-02-12
  • 打赏
  • 举报
回复
没有吧?“使用支持Unicode的odbc、ado、……”?unicode不是通过修改工程属性来实现的吗?按你这么说oledb不就是废了吗?
隐者神归 2016-12-12
  • 打赏
  • 举报
回复
回楼上2位: 数据库是 access,数据库内容可以正常读出。出问题的是读取表的字段,就是 column的名称出问题了,如果是中文的,变成了??,西文的没有问题。 另外我找了access里面好象没有表或字段名称的编码设置。
Eleven 2016-12-12
  • 打赏
  • 举报
回复
你数据库中定义的是什么编码格式的?
zgl7903 2016-12-12
  • 打赏
  • 举报
回复
要看数据库端的设置, UNICODE不行, 试试UTF8
赵4老师 2016-12-12
  • 打赏
  • 举报
回复
使用支持Unicode的odbc、ado、……

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧