程序问题,请帮忙解决。
以下的程序是抄MSDN上,但是有错误,初学不知道错在哪里,请大家指点,谢了!
#include "stdio.h"
#include "icrsint.h"
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
_COM_SMARTPR_TYPEDEF(IADORecordBinding,__uuidof(IADORecordBinding));
inline void TESTHR(HRESULT _hr){if FAILED(_hr) _com_issue_error(_hr);}
class CCustomRs:public CADORecordBinding
{
BEGIN_ADO_BINDING(CCustomRs)
ADO_VARIABLE_LENGTH_ENTRY2(2,adVarChar,m_ch_fname,
sizeof(m_ch_fname),m_ul_fnameStatus,false)
ADO_VARIABLE_LENGTH_ENTRY2(4,adVarChar,m_ch_lname,
sizeof(m_ch_lname),m_ul_lnameStatus,false)
END_ADO_BINDING()
public:
CHAR m_ch_fname[22];
CHAR m_ch_lname[32];
ULONG m_ul_fnameStatus;
ULONG m_ul_lnameStatus;
};
void main(void)
{
::CoInitialize(NULL);
try
{
_RecordsetPtr pRs("ADODB>Recordest");
CCustomRs rs;
IADORecordBindingPtr picRs(pRs);
pRs->Open("SELECT *FROM zhenwu","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=zhenwu.mdb",adOpenStatic,adLockOptimistic,adCmdText);
TESTHR(picRs->BindToRecordset(&rs));
while(!pRs->adoEOF)
{
printf("%s, %s\n",(rs.m_ul_fnameStatus==adFldOK?rs.m_ch_fname:"ERROR"),(rs.m_ul_lnameStatus==adFldOK?rs.m_ch_lname:"ERROR"));
pRs->MoveNext;
}
}
catch (_com_error &e)
{
printf("ERROE:\n");
}
::CoUninitialize();
}