在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也解决不了,有啥路办法没有
...全文
1696 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、……
代码下载链接: https://pan.quark.cn/s/b27638adc362 在工业自动化监控领域,WinCC 被视为一种常用的可视化软件,其功能在于构建人机界面(HMI)以及SCADA系统。本资料将阐释在WinCC环境下如何构建一个展现管道流体流动的动态效果,此功能主要通过C动作脚本来完成。在此过程,我们需要构建两个矩形,分别标记为 rec1 和 rec2。这两个矩形的高度相等,但 rec1 的宽度要小于 rec2。在具体实施时,rec1 将作为展示流体运动的可见单元,而 rec2 则作为辅助元素,尽管其“显示”属性被设为关闭,但在程序执行期间,其属性参数对流体动画的表现起着决定性作用,因为 rec2 与 rec1 的宽度差将决定流体每次移动的长度。 随后,我们需要将 rec1 和 rec2 整合为一个自定义对象。在自定义对象的属性配置,应包含 rec1.Left、rec1.Width、rec1.Visible 和 rec2.Width 这些核心属性。这些属性将有助于在C脚本精确控制对象的位置和可见状态,以达成流体运动的视觉效果。同时,用户可根据实际需求增加其他属性,以增强自定义对象的功能性。 在自定义对象的C脚本部分,我们设定了一个周期为“250ms”的触发器。该脚本的核心职责是计算并更新流体块的位置。借助 GetPropBOOL、GetPropWord 和 GetLeft 函数,我们可以获取对象的当前状态,涵盖其可见性、位置及宽度等参数。在循环操作,流体块(rec1)将向右移动 rec2 - rec1 的距离,一旦流体块移出显示范围(即 rec1 的右边界达到或超过 rec2 的左边界),它将重新回到起始位置,从而形成流体持续流动的模...

4,017

社区成员

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

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