用VC连接sql server 2005时,运行时出现这样 的异常,请
用VC连接sql server 2005时,运行时出现这样 的错误,请高手指点。
在用VC连接sql server 2005时,出现如下错误:
我跟踪查错了,就是在连接时出了问题,具体位置是在pConn->Open("","","",adConnectUnspecified);
以下是我的原代码:
CoInitialize(NULL);
_ConnectionPtr pConn=NULL;
pConn.CreateInstance(__uuidof(Connection));
_RecordsetPtr pRs=NULL;
pRs.CreateInstance(__uuidof(Recordset));
try
{
pConn->ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=denglu;Data Source=.";
pConn->Open("","","",adConnectUnspecified);//出错位置
pRs = pConn->Execute("select * from dbo.denglu",NULL,adCmdText);
while(!pRs->adoEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRs->GetCollect("UserName"));
pRs->MoveNext();
}
}
catch(_com_error e)
{
CString str;
str.Format("数据库连接失败!\r\n 错误信息 %s",e.ErrorMessage());
MessageBox(str,"错误信息",MB_OK);
pConn->Close();
pConn.Release();
pRs->Close();
pRs.Release();
}
pConn->Close();
pConn.Release();
pRs->Close();
pRs.Release();
CoUninitialize();
------解决方案--------------------
你都没有设置数据源,连接SQL Server 的Open函数原型是
Open("drive={SQL Server};Server=127.0.0.1;DATABASE=databasename;UID=sa;PWD=password","","",adModeUnknown)
你把server改成数据库的IP或计算机名,DATABASE改成数据库名,PWD改成你的数据库sa的密码就可以连接了
------解决方案--------------------
1.在工程的Cxx.cpp(在A工程中的CAApp类中)的InitInstance()函数中
/*********初始化COM库***************/
在MFC中可以用AfxOleInit();
非MFC环境中用:
CoInitialize(NULL);
CoUnInitialize();
2.在StdAfx.h中
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
3.为程序添加数据库连接函数OnInitADOConn(),函数名可以任取
void CDataConDlg::OnInitADOConn()
{
/***********连接数据库**************/
try
{
m_pConnection.CreateInstance("ADODB.Connection");
/*****************Catalog为你的数据库的名称********************************/
CString strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=FXL;Data Source=.;";
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
/************数据库连接成功********************/
}
------解决方案--------------------
错误代码看不到,是不是数据源配置的问题
------解决方案--------------------
如果你用的是VS2008,可以在 tools->connect to database里试一下可以连接到数据库不,还有就是你的数据库安装时设置的验证模式,最好选混合模式,意思是可以windows验证也可以SA验证
------解决方案--------------------
如果你是用的VC2008的话,给个邮箱,和你SQL服务器地址及数据库名,我写好个测试工程给你发过去,看下是不是系统问题
------解决方案--------------------
新建个UDL文件,用这个文件连接数据库,然后连接字符串写为"File Name=xxx.udl"
在用VC连接sql server 2005时,出现如下错误:
我跟踪查错了,就是在连接时出了问题,具体位置是在pConn->Open("","","",adConnectUnspecified);
以下是我的原代码:
CoInitialize(NULL);
_ConnectionPtr pConn=NULL;
pConn.CreateInstance(__uuidof(Connection));
_RecordsetPtr pRs=NULL;
pRs.CreateInstance(__uuidof(Recordset));
try
{
pConn->ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=denglu;Data Source=.";
pConn->Open("","","",adConnectUnspecified);//出错位置
pRs = pConn->Execute("select * from dbo.denglu",NULL,adCmdText);
while(!pRs->adoEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRs->GetCollect("UserName"));
pRs->MoveNext();
}
}
catch(_com_error e)
{
CString str;
str.Format("数据库连接失败!\r\n 错误信息 %s",e.ErrorMessage());
MessageBox(str,"错误信息",MB_OK);
pConn->Close();
pConn.Release();
pRs->Close();
pRs.Release();
}
pConn->Close();
pConn.Release();
pRs->Close();
pRs.Release();
CoUninitialize();
------解决方案--------------------
你都没有设置数据源,连接SQL Server 的Open函数原型是
Open("drive={SQL Server};Server=127.0.0.1;DATABASE=databasename;UID=sa;PWD=password","","",adModeUnknown)
你把server改成数据库的IP或计算机名,DATABASE改成数据库名,PWD改成你的数据库sa的密码就可以连接了
------解决方案--------------------
1.在工程的Cxx.cpp(在A工程中的CAApp类中)的InitInstance()函数中
/*********初始化COM库***************/
在MFC中可以用AfxOleInit();
非MFC环境中用:
CoInitialize(NULL);
CoUnInitialize();
2.在StdAfx.h中
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
3.为程序添加数据库连接函数OnInitADOConn(),函数名可以任取
void CDataConDlg::OnInitADOConn()
{
/***********连接数据库**************/
try
{
m_pConnection.CreateInstance("ADODB.Connection");
/*****************Catalog为你的数据库的名称********************************/
CString strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=FXL;Data Source=.;";
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
/************数据库连接成功********************/
}
------解决方案--------------------
错误代码看不到,是不是数据源配置的问题
------解决方案--------------------
如果你用的是VS2008,可以在 tools->connect to database里试一下可以连接到数据库不,还有就是你的数据库安装时设置的验证模式,最好选混合模式,意思是可以windows验证也可以SA验证
------解决方案--------------------
如果你是用的VC2008的话,给个邮箱,和你SQL服务器地址及数据库名,我写好个测试工程给你发过去,看下是不是系统问题
------解决方案--------------------
新建个UDL文件,用这个文件连接数据库,然后连接字符串写为"File Name=xxx.udl"