好了,现在我们正式进入本主题,Let''''s go
n 新建一个基于对话的应用程序zjy,在对话框上添加一个按钮和列表控件,并把列表控件的样式设置为报表视图,还有用classwizard给列表控件添加一个控件变量m_list
n 在StdAfx.h头文件中添加一条如下语句
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
n 在zjy.cpp开始处添加自动初始化COM库的代码
struct InitOle
{
InitOle(){::CoInitialize(NULL);}
~InitOle(){::CoUninitialize();}
}_init_InitOle_;
n 在zjyDlg.h中添加三个成员变量
bool m_IsConnectionOpen;
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
n 在zjyDlg.cpp的BOOL CZjyDlg::OnInitDialog()的 return TRUE;前面添加如下代码
// TODO: Add extra initialization here
HRESULT hr;
_bstr_t bstrQuery("select * from customers");
_bstr_t strConnect="Provider=SQLOLEDB; data source=127.0.0.1;initial catalog=Northwind;";
_variant_t vRecsAffected(0L);
_variant_t vNULL;
vNULL.vt=VT_ERROR;
vNULL.scode =DISP_E_PARAMNOTFOUND;
try
{
hr=m_pConnection.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open(strConnect,_bstr_t(L"sa"),_bstr_t(L""),adConnectUnspecified);
if(SUCCEEDED(hr))
{
hr=m_pRecordset.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hr))
{
m_pRecordset->PutRefActiveConnection(m_pConnection);
hr=m_pRecordset->Open(_variant_t(bstrQuery),vNULL,adOpenDynamic,adLockOptimistic,adCmdText);
if(SUCCEEDED(hr))
{
m_IsConnectionOpen=true;
}
}
}
}
}
catch(_com_error &e)
{
_bstr [1] [2] [3] [4] 下一页 没有相关教程
|