最近需要做ADO数据库。不知道怎么入手。
大概思想是,首先就open,open失败说明没有,就创建一个,然后在打开,里面实现读,写,找,删等操作。(假定是*.mdb)
关键是现在连怎么去创建还不清楚,所以请大家帮忙出谋划策。
各位给个思路,流程。
用ADO方式需要做哪些工作,步骤。
非常谢谢。

解决方案 »

  1.   


    直接通过ADO操作Access数据库http://www.vckbase.com/document/viewdoc/?id=496
      

  2.   

    自己的例子:
    (1)在.h文件中加入:
    #import "msado15.dll" no_namespace rename("EOF", "adoEOF")
    两成员变量:
    _ConnectionPtr m_pConnection;
    _RecordsetPtr m_pRecordset;
    在.cpp中加入
    (2)连接和记录集初始化
    ::CoInitialize(NULL);
    HRESULT hr;
    try
    {
    hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
    if(SUCCEEDED(hr))
    {
    hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dbTest.mdb",
    "","",adModeUnknown);///连接数据库
    //上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,
    //需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
    }
    }
    catch(_com_error e)///捕捉异常
    {
    CString errormessage;
    errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
    AfxMessageBox(errormessage);///显示错误信息
    }
    m_pRecordset.CreateInstance("ADODB.Recordset");
    m_pRecordset->Open("SELECT * FROM 工资表",_variant_t((IDispatch*)m_pConnection,true),
    adOpenStatic,adLockOptimistic,adCmdText); return TRUE;  // return TRUE  unless you set the focus to a control
    }
    (3)数据查询与显示
    _variant_t name;
    CString str;
    if(!m_pRecordset->adoEOF)
    {
    name=m_pRecordset->GetCollect("姓名");
    str=name.bstrVal;
    SetDlgItemText(IDC_STATIC1,str);
    m_pRecordset->MoveNext();
    }
    else
    m_pRecordset->MoveFirst();
    (4)关闭与释放
    m_pRecordset->Close();
    if(m_pConnection->State)
    m_pConnection->Close(); ///如果已经打开了连接则关闭
    delete m_pRecordset;
    delete m_pConnection;
    ::CoUninitialize();
      

  3.   


    这个也不错http://dev.yesky.com/243/2230743.shtml
      

  4.   

    恩,很感谢,例子我都看了。
    要是在wince中使用ADO又要怎么做呢?
    应该区别蛮大的吧
      

  5.   

    wince!!http://www.cppblog.com/tiger/archive/2007/11/01/17454.html
    看看这个行不行
      

  6.   

    看看这个http://blog.csdn.net/xqls_xqls