日期:2014-05-16  浏览次数:20750 次

MySQL使用ODBC连接

  


下面代码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;
}
}
}

------解决方案--------------------
哥们你用的是什么语言啊 我看怎么那么乱呢 
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连接数据库的方法!
------解决方案--------------------
如果前面的可以,后面的不成功,说明connstr有问题,USER、PASSWORD换同样的uid/pwd试试