如何在MFC中将数据库中的表单查询出来,并进一步对表单查询,不用控件

解决方案 »

  1.   

    在stdafx.h的include后面加进去:
    #import "c:\program files\common files\system\ado\msado15.dll" (具体的位置看你的系统安装) no_namespace rename("EOF","adoEOF")
    然后在头文件里定义:
    _ConnectionPtr m_pConnection;
    _RecordsetPtr m_pRecordset;
    _CommandPtr m_pCommand;
    AfxOleInitial();
    if(FAILED(m_pConnection.CreateInstance(__uuidof(Connection))))
       return ;
    if(FAILED(m_pRecordset.CreateInstance(__uuidof(Recordset))))
       return ;
    if(FAILED(m_pCommand.CreateInstance(_uuidof(Command))))
       return ;try
    {
     m_pConnection->Open("Provider = SQLOLEDB.1;Data Source = (local)/*数据库服务器*/;Initial Catalog = Demo/*数据库名*/","sa"/*用户名*/,""/*密码*/,adModeUnknown);
     m_pCommand->ActiveConnection = m_pConnection;
     m_pCommand->CommandText = "select * from TableName";
     m_pRecordset = m_pCommand->Execute(NULL,NULL,adCmdText);
     
     _variant_t var;
     while(!m_pRecordset->adoEOF)/*不到记录结束*/
     {
        var = m_pRecordset->GetCollect("FieldName");/*参数为字段名*/
        if(var.vt != VT_NULL)
          变量名 = (LPCTSTR)/*类型强制转换,假定变量为CString*/_bstr_t(var);
        /*有多字段的话,重复这样的操作*/    m_pRecordset->MoveNext();
      }
    }
    catch(_com_error* er)
    {
      MessageBox(er->ErrorMessage(),"出错提示",MB_OK);
      return ;
    }
      

  2.   

    select table_name from user_tables;
    查询当前用户下有哪些表
      

  3.   

    我对ADO不熟,为什么有很多变量在MSDN中查不到,比如说_ConnectionPtr,这些是定义在msado15.dll中的吗?我如何了解这些变量?
      

  4.   

    去www.vckbase.com去看一些关于ado的技术文档,你就懂了,呵呵