⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_30717.htm

📁 vc
💻 HTM
字号:
<p>
序号:30717 发表者:zhouguosheng 发表日期:2003-02-25 20:11:56
<br>主题:用OLE DB打开SQL6.5表中带汉字内容会出乱码,而打开SQL2000不会???
<br>内容:#ifndef __DBOTGDZH_H_<BR>#define __DBOTGDZH_H_<BR><BR>class CdbotGDZHAccessor<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;TCHAR m_ZH[9];<BR>&nbsp;&nbsp;&nbsp;&nbsp;TCHAR m_XM[8];<BR>&nbsp;&nbsp;&nbsp;&nbsp;SHORT m_LB;<BR>&nbsp;&nbsp;&nbsp;&nbsp;TCHAR m_JYFL[9];<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>BEGIN_COLUMN_MAP(CdbotGDZHAccessor)<BR>&nbsp;&nbsp;&nbsp;&nbsp;COLUMN_ENTRY(1, m_ZH)<BR>&nbsp;&nbsp;&nbsp;&nbsp;COLUMN_ENTRY(2, m_XM)<BR>&nbsp;&nbsp;&nbsp;&nbsp;COLUMN_ENTRY(3, m_LB)<BR>&nbsp;&nbsp;&nbsp;&nbsp;COLUMN_ENTRY(4, m_JYFL)<BR>END_COLUMN_MAP()<BR><BR>DEFINE_COMMAND(CdbotGDZHAccessor, _T(" \<BR>&nbsp;&nbsp;&nbsp;&nbsp;SELECT \<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZH, \<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XM, \<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LB, \<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JYFL, \<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM dbo.ZHLL")) <BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// You may wish to call this function if you are inserting a record and wish to<BR>&nbsp;&nbsp;&nbsp;&nbsp;// initialize all the fields, if you are not going to explicitly set all of them.<BR>&nbsp;&nbsp;&nbsp;&nbsp;void ClearRecord()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(this, 0, sizeof(*this));<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>};<BR><BR>class CdbotGDZH : public CCommand&lt;CAccessor&lt;CdbotGDZHAccessor&gt; &gt;<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;HRESULT Open()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HRESULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hr;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hr = OpenDataSource();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (FAILED(hr))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return hr;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return OpenRowset();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;HRESULT OpenDataSource()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HRESULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDataSource db;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDBPropSet&nbsp;&nbsp;&nbsp;&nbsp;dbinit(DBPROPSET_DBINIT);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbinit.AddProperty(DBPROP_AUTH_PASSWORD, OLESTR("000000"));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbinit.AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, false);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbinit.AddProperty(DBPROP_AUTH_USERID, OLESTR("sa"));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbinit.AddProperty(DBPROP_INIT_CATALOG, OLESTR("ZGS2000"));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbinit.AddProperty(DBPROP_INIT_DATASOURCE, OLESTR("zh"));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbinit.AddProperty(DBPROP_INIT_LCID, (long)2052);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hr = db.Open(_T("SQLOLEDB.1"), &amp;dbinit);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (FAILED(hr))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return hr;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return m_session.Open(db);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;HRESULT OpenRowset()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Set properties for open<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDBPropSet&nbsp;&nbsp;&nbsp;&nbsp;propset(DBPROPSET_ROWSET);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;propset.AddProperty(DBPROP_IRowsetChange, true);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return CCommand&lt;CAccessor&lt;CdbotGDZHAccessor&gt; &gt;::Open(m_session, NULL, &amp;propset);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;CSession&nbsp;&nbsp;&nbsp;&nbsp;m_session;<BR>};<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:lyw 回复日期:2003-02-26 12:38:36
<br>内容:不知你使用什么环境,MFC还是ATL?<BR>在打开记录集时先调用一下ClearRecord();<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhouguosheng 回复日期:2003-02-26 17:28:26
<br>内容:我是个VC初学者,请教MFC与ATL有什么不同?<BR>我上面的class ATL::CDataSource;class ATL::CSession;是ATL,<BR>为什么取汉字内容都为乱码。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:lyw 回复日期:2003-02-28 13:43:27
<br>内容:MFC与ATL有什么不同一时说不清楚<BR>如果是ATL,乱码的问题可能由于ASCII和UNICODE字符集的不同引起的,要用函数转换过的<BR>CdbotGDZH gdzhset;<BR>......<BR>USES_CONVERSION;<BR>sprintf(m_Name,"%s",W2A(gdzhset.m_XM));<BR>如果是MFC,在打开记录集时先调用一下ClearRecord();<BR><BR><BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -