龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC下的ADO编程入门(2-4)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
好了,现在我们正式进入本主题,Lets go n 新建一个基于对话的应用程序zjy,在对话框上添加一个按钮和列表控件,并把列表控件的样式设置为报表视图,还有用classwizard给列表控件添加

好了,现在我们正式进入本主题,Let's go

n          新建一个基于对话的应用程序zjy,在对话框上添加一个按钮和列表控件,并把列表控件的样式设置为报表视图,还有用classwizard给列表控件添加一个控件变量m_list

n          在StdAfx.h头文件中添加一条如下语句

#import "c:program filescommon filessystemadomsado15.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

精彩图集

赞助商链接