void CMainFrame::OnConnectdb()
{
// TODO: Add your command handler code here
CConnectDB conn;
if(conn.DoModal()==IDOK)
{
_ConnectionPtr pConn;
::CoInitialize(NULL);
try
{
pConn.CreateInstance("ADODB.Connection");
CString sql;
sql.Format("Provider=SQLOLEDB;SERVER=%s;DATABASE=%s;UID=%s;PWD=%s;",
conn.GetServerIP(),conn.GetDBName(),conn.GetUserName(),conn.GetPassword());
pConn->Open((_bstr_t)sql," "," ",-1);
}
catch(_com_error e)
{
AfxMessageBox((CString)e.ErrorMessage()+" 连接数据库失败!");
return;
}
AfxMessageBox("连接数据库成功!",MB_OK | MB_ICONINFORMATION);
}
}
数据库连接出错,麻烦高人指点一下(编译没有错,执行时出错)
显示的错误是:IDispatch error #3149 连接数据库失败
{
// TODO: Add your command handler code here
CConnectDB conn;
if(conn.DoModal()==IDOK)
{
_ConnectionPtr pConn;
::CoInitialize(NULL);
try
{
pConn.CreateInstance("ADODB.Connection");
CString sql;
sql.Format("Provider=SQLOLEDB;SERVER=%s;DATABASE=%s;UID=%s;PWD=%s;",
conn.GetServerIP(),conn.GetDBName(),conn.GetUserName(),conn.GetPassword());
pConn->Open((_bstr_t)sql," "," ",-1);
}
catch(_com_error e)
{
AfxMessageBox((CString)e.ErrorMessage()+" 连接数据库失败!");
return;
}
AfxMessageBox("连接数据库成功!",MB_OK | MB_ICONINFORMATION);
}
}
数据库连接出错,麻烦高人指点一下(编译没有错,执行时出错)
显示的错误是:IDispatch error #3149 连接数据库失败
你设定断点跟一下sql.Format...这句执行完毕后是不是得到正确的SQL 语句 ,我觉得肯定不是, 问题应该就出在这。另外可以通过查询分析器来看SQL语句语法是否正确
CoInitialize(NULL);
pConn.CreateInstance(__uuidof(Connection));
pRst.CreateInstance(__uuidof(Recordset));
pConn->ConnectionTimeout=5;
//连接sqlserver串
pConn->ConnectionString="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=False;User ID=sa;Initial Catalog=yalong;";
try
{
pConn->Open("","","",adConnectUnspecified);
}
catch (...)
{
MessageBox(NULL,TEXT("连接服务器失败!"),TEXT("提示"),MB_OK);
}
if(!pConn->State)
{
MessageBox(NULL,TEXT("打开数据库失败!"),TEXT("数据库提示"),MB_OK);
}