zoukankan      html  css  js  c++  java
  • VC++6.0连接Access数据库

    建立一个连接数据库的类:

    1.头文件:ADOConn.h

    #import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace  rename("EOF","adoEOF")rename("BOF","adoBOF") 
    
    class ADOConnN
    {
    public:
    	_ConnectionPtr m_pConnect;
    	_CommandPtr m_pCommand;
    	_RecordsetPtr m_pRecord;
    
    	void OnInitADOConn();//初始化数据库连接
    	void ExitConnect();//断开数据库连接
    	void ExecuteSQL(CString sqlstr);//执行一般的数据库插入、更新、修改等
    	_RecordsetPtr GetRecord(CString sqlstr);//返回数据库中查询的数据集等
    };
    

    2.在StdAfx.h头文件中添加:

    #include "ADOConn.h"

    3.实现文件:ADOConn.cpp

    #include "stdafx.h"
    
    void ADOConnN::OnInitADOConn()
    {
    	::CoInitialize(NULL);
    	try  
    	{   //创建连接对象实例   
    		m_pConnect.CreateInstance("ADODB.Connection");   
    		//设置连接字符串   
    		CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=;DBQ=localwork.mdb;";   //数据库名称为localwork.mdb
    		//使用Open方法连接数据库   
    		m_pConnect->Open((_bstr_t)strConnect,"","",adModeUnknown); 
    	}  
    	catch(_com_error e)  
    	{   
    		AfxMessageBox("连接数据失败,请检查数据库路径是否正确!");  
    	}
    }
    
    void ADOConnN::ExitConnect()
    {
    	if(m_pRecord!=NULL)
    		m_pRecord->Close();
    	m_pConnect->Close();
    	::CoUninitialize();
    }
    
    void ADOConnN::ExecuteSQL(CString sqlstr)
    {
    	m_pConnect->Execute((_bstr_t)sqlstr,NULL,adCmdText);
    }
    
    _RecordsetPtr ADOConnN::GetRecord(CString sqlstr)
    {
    	_RecordsetPtr m_precordset=m_pConnect->Execute((_bstr_t)sqlstr,NULL,adCmdText);
    	return m_precordset;
    }
    

    4.应用:

    	CString bstrSQL ="select * from tb_UserInfo";//tb_UserInfo为localwork.mdb中的一个表
    	ADOConnN con;//实例化连接数据库对象
    	con.OnInitADOConn();//初始化数据库对象中的一些初始化工作
    	con.m_pRecord=con.GetRecord(bstrSQL);//获取数据集
    	while(!con.m_pRecord->adoEOF)
    	{
    	  m_Grid.InsertItem(0,"");
    	  m_Grid.SetItemText(0,0,(char*)(_bstr_t)con.m_pRecord->GetCollect("Username"));//Username为tb_UserInfo表的一列
    	  m_Grid.SetItemText(0,1,(char*)(_bstr_t)con.m_pRecord->GetCollect("password"));//password为tb_UserInfo表的一列
    	  //将记录集指针移动到下一条记录
    	  con.m_pRecord->MoveNext();
    	}
    	con.ExitConnect();//断开数据库连接
    

      

  • 相关阅读:
    S4全球总决赛(2)南邮NOJ2059
    S4全球总决赛(2)南邮NOJ2059
    S4全球总决赛(1) 南邮NOJ
    S4全球总决赛(1) 南邮NOJ
    S4全球总决赛(1) 南邮NOJ
    【Linux】鸟哥的Linux私房菜基础学习篇整理(五)
    【Linux】鸟哥的Linux私房菜基础学习篇整理(四)
    【HDOJ】2428 Stars
    【Linux】鸟哥的Linux私房菜基础学习篇整理(三)
    【Linux】鸟哥的Linux私房菜基础学习篇整理(二)
  • 原文地址:https://www.cnblogs.com/striver-zhu/p/4523155.html
Copyright © 2011-2022 走看看