WEB开发网
开发学院软件开发VC 用ADO进行数据库编程 阅读

用ADO进行数据库编程

 2008-02-26 20:26:30 来源:WEB开发网   
核心提示:_RecordsetPtr是一个记录集对象,与以上两种对象相比,用ADO进行数据库编程(2),它对记录集提供了更多的控制功能,如记录锁定、游标控制等,编译后该程序就能运行了,但记住运行前要创建一个叫ADOTest的ODBC数据源,在OnInitDialog()中加入以下代码:BOOL CAboutDlg::OnInit

_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定、游标控制等。

在OnInitDialog()中加入以下代码:

BOOL CAboutDlg::OnInitDialog()
   {
CDialog::OnInitDialog();
_variant_t TheValue;
m_List.ResetContent();
   m_pConnection.CreateInstance(_uuidof(Connection));
   m_pRecordset.CreateInstance(_uuidof(Recordset));
   try{
m_pConnection->Open("DSN=ADOTest","","",0); //连接叫作ADOTest的ODBC数据源
m_pRecordset->Open("SELECT * FROM BlockDefine",(IDispatch*)m_pConnection,
adOpenDynamic,
adLockOptimistic,
adCmdText);
   //执行SQL语句得到一个记录集
   while(!m_pRecordset->adoEOF)
   //遍历所有记录
   {
   TheValue = m_pRecordset->GetCollect("BlockIndex");
   //得到字段BlockIndex的值
   if(TheValue.vt!=VT_NULL)
   m_List.AddString((char*)_bstr_t(TheValue)); //将该值加入到列表控件中
   m_pRecordset->MoveNext();
   }
   m_pRecordset->Close();
m_pConnection->Close();
   }
   catch(_com_error e) //异常处理
   {
AfxMessageBox(e.ErrorMessage());
   }
   m_pRecordset = NULL;
m_pConnection = NULL;
   return TRUE; // return TRUE unless you set the focus to a control
   }

程序中通过_variant_t和_bstr_t转换COM对象和C++类型的数据, _variant_t类封装了OLE自治VARIANT数据类型。在C++中使用_variant_t类要比直接使用VARIANT数据类型容易得多。

好,编译后该程序就能运行了,但记住运行前要创建一个叫ADOTest的ODBC数据源。该程序将把表BlockDefine中的BlockIndex字段值显示在列表控件中。

上一页  1 2 

Tags:ADO 进行 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接