Visual C++ 6.0连接ADO数据库

本文介绍了如何在Visual C++ 6.0中使用ADO连接数据库,通过在StdAfx.h文件中添加代码,并在应用程序类的 OnInitInstance() 函数中初始化数据库连接,详细阐述了指针的定义和使用过程。

1.添加代码在StdAfx.h中

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")

2.初始化OLE/COM库环境

在应用程序类的OnInitance()中添加代码

::CoInitialize(NULL);

或者更完美的

if(FAILED(::CoInitialize(NULL)))
{
    AfxMessageBox("ADO Init Failed");
    return false;
}
3.连接数据库

首先定义指针

_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
然后连接吧.在OnInitDialog或者OnInitance都好,下面用例子说明
BOOL C------::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
    
    CString strname;
    strname.Format("uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=shujuku.mdb;");
    try
    {
        m_pConnection.CreateInstance("ADODB.Connection");
        _bstr_t strConnect=strname;
        m_pConnection->Open(strConnect,"","",adModeUnknown);
    }
    catch(_com_error e)
    {
        AfxMessageBox(e.Description());
    }
    _bstr_t bstrSQL;
    bstrSQL = "select * from employees order by 编号 desc";
    CString strText;
    int i=9;
    m_pRecordset.CreateInstance(__uuidof(Recordset));
    m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
    /*while(!m_pRecordset->adoEOF)
    {
        arrays[0][i] = (char*)(_bstr_t)m_pRecordset->GetCollect("编号");
        arrays[1][i] = (char*)(_bstr_t)m_pRecordset->GetCollect("姓名");
        arrays[2][i] = (char*)(_bstr_t)m_pRecordset->GetCollect("职务");
        arrays[3][i] = (char*)(_bstr_t)m_pRecordset->GetCollect("部门");
        m_Grid.InsertItem(0,0);
        m_Grid.SetItemText(0,0,arrays[0][i]);
        m_Grid.SetItemText(0,1,arrays[1][i]);
        m_Grid.SetItemText(0,2,arrays[2][i]);
        m_Grid.SetItemText(0,3,arrays[3][i]);
        m_pRecordset->MoveNext();
        i--;
    }*/  //用于在ListCtrl中显示
    if(m_pRecordset!=NULL)
        m_pRecordset->Close();
	m_pConnection->Close();  //关闭
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值