下面代码1  是可以连接的,但是我不想在电脑上手工创建ODBC于是使用了代码2 结果执行到 hr = m_pvodCon->Open就“定”那里了,求解决
这句是2拼接的结果
DRIVER={ MySQL ODBC 5.1 Driver }; SERVER=172.16.1.73; PORT=3306; DATABASE=test; USER=root; PASSWORD=123456; OPTION=4099; 1、
sprintf( aszSQL, "DSN=%s;server=%s;database=%s;UID=%s;PWD=%s",
_T("XXX_MySqlODBC"), "localhost", _T("test"), "root", "123456" );2、  sprintf( aszSQL,"DRIVER={ %s }; SERVER=%s; PORT=%d; DATABASE=%s; USER=%s; PASSWORD=%s; OPTION=4099;",
  _T("MySQL ODBC 5.1 Driver"), "localhost", 3306, _T("test"), "root", "123456"); hr = m_pvodCon.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
{
            hr = m_pvodCon->Open( _bstr_t( aszSQL ), _bstr_t(""), _bstr_t(""),
                                  adModeUnknown );
if(SUCCEEDED(hr))
{
wRet = VOD_OK;
}
}
}

解决方案 »

  1.   

    哥们你用的是什么语言啊  我看怎么那么乱呢 
    String url="jdbc:mysql://localhost:3306/mysql" ;
         String userName ="root";
         String password ="root";
         Connection conn = null;
         try{
         Class.forName("com.mysql.jdbc.Driver");
        
         }
         catch(ClassNotFoundException e){
         out.print("加载数据库出现异常");
         }
         try{
         conn = null;
         conn = DriverManager.getConnection(url,userName,password);
         }catch(SQLException e){
         out.print("连接数据库时出错");
         }
         if(conn==null)
         out.print("失败");
         else
         out.print("成功");
         try{
         conn.close();
         }catch(SQLException e){
         out.print("关闭数据库时出错");
        } 
    用java连接数据库的方法!
      

  2.   

    VC + ADO貌似你那个我用不了,不过还是谢谢你
      

  3.   

    如果前面的可以,后面的不成功,说明connstr有问题,USER、PASSWORD换同样的uid/pwd试试
      

  4.   

    不是程序问题是my odbc问题,在mysql社区里找到了这个bug,解决办法是下新版本的odbc 不要5.1的