请先看以下代码:
AfxOleInit();
_ConnectionPtr m_pConn;
HRESULT hr;
CString m_sConn="Provider=SQLOLEDB.1;Data Source=127.0.0.1;Initial Catalog=hj";
hr=m_pConn.CreateInstance("ADODB.Connection");
if(FAILED(hr))
{
AfxMessageBox("连接实例创建失败!");
return FALSE;
}
try
{
hr=m_pConn->Open((_bstr_t)m_sConn,"sa","",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能连接数据库 error!");
return FALSE;
}以上代码,编译链接都通过了,但运行时却老是弹对话框:"不能连接数据库 error!",也就是catch里面那个AfxMessageBox。
另外,我是在连接本机上的一个SQL 2000的数据库,数据库名字是hj,没有密码。数据库方面应该没有问题,因为我用SQL 2000的“企业管理器”都能够成功登陆并打开数据库hj。
请问各位大哥我可能是哪里搞错了?
我第一次做数据库的东西,问的问题也许很弱智,各位大哥不要笑我哈。
AfxOleInit();
_ConnectionPtr m_pConn;
HRESULT hr;
CString m_sConn="Provider=SQLOLEDB.1;Data Source=127.0.0.1;Initial Catalog=hj";
hr=m_pConn.CreateInstance("ADODB.Connection");
if(FAILED(hr))
{
AfxMessageBox("连接实例创建失败!");
return FALSE;
}
try
{
hr=m_pConn->Open((_bstr_t)m_sConn,"sa","",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能连接数据库 error!");
return FALSE;
}以上代码,编译链接都通过了,但运行时却老是弹对话框:"不能连接数据库 error!",也就是catch里面那个AfxMessageBox。
另外,我是在连接本机上的一个SQL 2000的数据库,数据库名字是hj,没有密码。数据库方面应该没有问题,因为我用SQL 2000的“企业管理器”都能够成功登陆并打开数据库hj。
请问各位大哥我可能是哪里搞错了?
我第一次做数据库的东西,问的问题也许很弱智,各位大哥不要笑我哈。
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "EndOfFile")
这应该没什么问题吧?我看别人的都是这样写的。
各位大哥帮我看看吧,拜托了!
try
{
hr=pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
CString sql;
sql.Format("driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s",serverip,dsn,UserName,dbpass);
hr=pConnection->Open((LPCTSTR)sql,"","",adModeUnknown);
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s又出毛病了:(",e.ErrorMessage());
AfxMessageBox(errormessage);
}试试我这个吧。我一直用的。我的是混合登陆方式,如果装数据库时设置不一样,要注意修改。