假如DoADO.cpp
——-------------#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")..............void SQLPanel::OnBtnExesql() 
{
// TODO: Add your control notification handler code here         AfxOleInit();    

extern CString m_strSQL;
char * SQL= (LPSTR)(LPCTSTR)m_strSQL;
HRESULT hr;
CString strSQL;
    if(m_EdtSql==""){
AfxMessageBox("请填写SQL语句!");
return;
    } try { 
        hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 
hr = m_pConnection->Open(SQL,"","",adModeUnknown); 
}
catch(_com_error e)///捕捉异常 

        CString errormessage; 
    errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
}
    
SQL= (LPSTR)(LPCTSTR)m_EdtSql;
m_RecSQL = m_EdtSql;
    
CString Key;            //关键字:select;update;insert;delete
Key = m_EdtSql.Left(6); //获取关键字

m_pRecord.CreateInstance("ADODB.Recordset");
    Key.MakeLower(); 
     int mSqlLen = m_EdtSql.GetLength();
int i=0,Flag=0;
    if(Key == "select"){
   
   try{
      hr = m_pRecord->Open(SQL,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
  }
   catch(_com_error e)///捕捉异常 
   { 
          AfxMessageBox("SQL操作异常,请检查SQL语句");
      return;
  }

解决方案 »

  1.   

    对了,弱问
    stdafx.h都没有,你这程序活得下去吗?
      

  2.   

    我的工程是一个控制台工程,那在哪里加#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
    调用AfxOleInit()这个函数也出错,请问调用此函数需要加什么头文件吗?
      

  3.   

    连接数据库不一定非要mfc
    控制台完全可以
    就和上面说的,只要#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")就可以了_ConnectionPtr m_pConn;
    m_strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库路径";(access数据库)
    CoInitialize(NULL);
    //连接数据库
    m_pConn.CreateInstance("ADODB.Connection");
    try{
    m_pConn->Open((_bstr_t)m_strConnect,"","",adConnectUnspecified);
    }catch(_com_error e){
    MessageBox("连接数据库失败!");
    }
      

  4.   

    控制台就用CoInitialize(NULL);不用AfxOleInit();
    用完数据库后,记得CoUninitialize();
      

  5.   

    //初始化OLE/COM库环境 ,为访问ADO接口做准备
          ::CoInitialize(NULL);       //定义变量
           _ConnectionPtr  m_pConnection;       
           //实例化
           m_pConnection.CreateInstance("ADODB.Connection");        //建立和数据库的连接,Server后面填服务器IP,DATABASE填你的数据库实例
            //UID是你的数据库访问帐号,PWD是密码
           m_pConnection->Open("Provider=sqloledb;Server=x.x.x.x;DATABASE=;UID=;PWD=","","",adModeRead);         m_pConnection->Close();//关闭连接         ::CoUninitialize();
          
      

  6.   

    直接用api去连不就好了么和mfc没有关系的。。