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

📄 subject_17296.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:17296 发表者:sdf 发表日期:2002-10-10 10:17:23
<br>主题:ADO的问题
<br>内容:在用数据库访问记录集中的数据时,必须定义一个类,这个类要从CADORecordBinding类继承而来,但这个类在icrsint.h头文件中,如何继承啊?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:静风 回复日期:2002-10-11 14:46:40
<br>内容:#include进来不行吗?
<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>回复者:黄飚 回复日期:2002-10-11 15:00:03
<br>内容:范例: 带 Extensions 的 ADO<BR>&nbsp;&nbsp; <BR><BR>该程序说明了如何从字段检索数值并将数值转换为 C++ 变量。它包括了在程序段(范例:无 Extensions 的 ADO)中所描述的功能。<BR><BR>#define INITGUID<BR>#import "c:\Program Files\Common Files\System\ADO\msado15.dll" <BR>&nbsp;&nbsp; no_namespace rename("EOF", "EndOfFile")<BR>#include &lt;stdio.h&gt;<BR>#include "icrsint.h"<BR><BR>void dump_com_error(_com_error &e)<BR>&nbsp;&nbsp; {<BR>printf("Error\n");<BR>printf("\a\tCode = %08lx\n", e.Error());<BR>printf("\a\tCode meaning = %s", e.ErrorMessage());<BR>_bstr_t bstrSource(e.Source());<BR>_bstr_t bstrDescription(e.Description());<BR>printf("\a\tSource = %s\n", (LPCSTR) bstrSource);<BR>printf("\a\tDescription = %s\n", (LPCSTR) bstrDescription);<BR>&nbsp;&nbsp; }<BR><BR>class CCustomRs : <BR>&nbsp;&nbsp; public CADORecordBinding<BR>{<BR>BEGIN_ADO_BINDING(CCustomRs)<BR>&nbsp;&nbsp; ADO_VARIABLE_LENGTH_BINDING_ENTRY(1, adVarChar, m_szau_lname, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(m_szau_lname), lau_lnameStatus, FALSE)<BR>&nbsp;&nbsp; ADO_VARIABLE_LENGTH_BINDING_ENTRY(2, adVarChar, m_szau_fname, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(m_szau_fname), lau_fnameStatus, TRUE)<BR>END_ADO_BINDING()<BR><BR>public:<BR>&nbsp;&nbsp; CHAR&nbsp;&nbsp; m_szau_lname[41];<BR>&nbsp;&nbsp; ULONG&nbsp;&nbsp; lau_lnameStatus;<BR>&nbsp;&nbsp; CHAR&nbsp;&nbsp; m_szau_fname[41];<BR>&nbsp;&nbsp; ULONG&nbsp;&nbsp; lau_fnameStatus;<BR>};<BR><BR>VOID&nbsp;&nbsp; main()<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp; HRESULT hr;<BR>&nbsp;&nbsp; IADORecordBinding&nbsp;&nbsp; *picRs = NULL;<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; ::CoInitialize(NULL);<BR><BR>&nbsp;&nbsp; try <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_RecordsetPtr pRs.CreateInstance(__uuidof(Recordset));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CCustomRs rs;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pRs-&gt;Open("select FirstName, LastName, Age from Employees", <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "dsn=pubs;uid=sa;pwd=;", <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adOpenStatic, adLockOptimistic, adCmdUnknown);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (FAILED(hr = pRs-&gt;QueryInterface(__uuidof(IADORecordBinding), <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(LPVOID*)&picRs)))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _com_issue_error(hr);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (FAILED(hr = picRs-&gt;BindToRecordset(&rs)))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _com_issue_error(hr);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (VARIANT_FALSE == pRs-&gt;EndOfFile)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 处理 CCustomRs C++ 实例变量中的数据。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\a\tName = %s \t%s", <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(lau_fnameStatus == adFldOK ? m_szau_fname : "&lt;NULL&gt;"), <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(lau_lnameStatus == adFldOK ? m_szau_lname): "&lt;NULL&gt;"));<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 更改 Recordset 的当前行。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 新当前行的 Recordset 数据将被<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 自动取出并防止在 CCustomRs C++ 实例变量中<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pRs-&gt;MoveNext();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp; catch (_com_error &e)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dump_com_error(e);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp; if (picRs)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;picRs-&gt;Release();<BR><BR>&nbsp;&nbsp; CoUninitialize();<BR>&nbsp;&nbsp; };<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 + -