📄 subject_17296.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> <BR><BR>该程序说明了如何从字段检索数值并将数值转换为 C++ 变量。它包括了在程序段(范例:无 Extensions 的 ADO)中所描述的功能。<BR><BR>#define INITGUID<BR>#import "c:\Program Files\Common Files\System\ADO\msado15.dll" <BR> no_namespace rename("EOF", "EndOfFile")<BR>#include <stdio.h><BR>#include "icrsint.h"<BR><BR>void dump_com_error(_com_error &e)<BR> {<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> }<BR><BR>class CCustomRs : <BR> public CADORecordBinding<BR>{<BR>BEGIN_ADO_BINDING(CCustomRs)<BR> ADO_VARIABLE_LENGTH_BINDING_ENTRY(1, adVarChar, m_szau_lname, <BR> sizeof(m_szau_lname), lau_lnameStatus, FALSE)<BR> ADO_VARIABLE_LENGTH_BINDING_ENTRY(2, adVarChar, m_szau_fname, <BR> sizeof(m_szau_fname), lau_fnameStatus, TRUE)<BR>END_ADO_BINDING()<BR><BR>public:<BR> CHAR m_szau_lname[41];<BR> ULONG lau_lnameStatus;<BR> CHAR m_szau_fname[41];<BR> ULONG lau_fnameStatus;<BR>};<BR><BR>VOID main()<BR> {<BR> HRESULT hr;<BR> IADORecordBinding *picRs = NULL;<BR> <BR> ::CoInitialize(NULL);<BR><BR> try <BR> {<BR> _RecordsetPtr pRs.CreateInstance(__uuidof(Recordset)); CCustomRs rs;<BR> <BR> pRs->Open("select FirstName, LastName, Age from Employees", <BR> "dsn=pubs;uid=sa;pwd=;", <BR> adOpenStatic, adLockOptimistic, adCmdUnknown);<BR> <BR> if (FAILED(hr = pRs->QueryInterface(__uuidof(IADORecordBinding), <BR> (LPVOID*)&picRs)))<BR> _com_issue_error(hr);<BR> <BR> if (FAILED(hr = picRs->BindToRecordset(&rs)))<BR> _com_issue_error(hr);<BR><BR> while (VARIANT_FALSE == pRs->EndOfFile)<BR> {<BR> // 处理 CCustomRs C++ 实例变量中的数据。<BR><BR> printf("\a\tName = %s \t%s", <BR> (lau_fnameStatus == adFldOK ? m_szau_fname : "<NULL>"), <BR> (lau_lnameStatus == adFldOK ? m_szau_lname): "<NULL>"));<BR><BR> // 更改 Recordset 的当前行。<BR> // 新当前行的 Recordset 数据将被<BR> // 自动取出并防止在 CCustomRs C++ 实例变量中<BR> <BR> pRs->MoveNext();<BR> }<BR> }<BR> catch (_com_error &e)<BR> {<BR> dump_com_error(e);<BR> }<BR><BR> if (picRs)<BR> picRs->Release();<BR><BR> CoUninitialize();<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 + -