大家帮我看看这个连接数据库的错误原因是什么!多谢
在我的程序中有如下语句:
cstring strconn("data source = dianqi-zjf, initial catalog =
\"马达控制中心数据库\"");
m_padoconnection.open(strconn, "aaaa", "aa");
m_padoconnection是自己定义的一个封装类,封装了connection对象
open函数的定义如下:
bool cadoconnection::open(lpctstr lpstrconnection, lpctstr pstruserid, lpctstr lpstrpassword)
{
hresult hr = s_ok;
if(isopen())
close();
if(strcmp(lpstrconnection, _t("")) != 0)
m_strconnection = lpstrconnection;
assert(!m_strconnection.isempty());
try
{
if(m_nconnectiontimeout != 0)
m_pconnection->putconnectiontimeout(m_nconnectiontimeout);
hr = m_pconnection->open(_bstr_t(m_strconnection), _bstr_t
(lpstruserid), _bstr_t(lpstrpassword), null);
return hr == s_ok;
}
catch(_com_error &e)
{
dump_com_error(e);
return false;
}
}
运行时出错,有一下提示:
cadoconnection error
code 80004005
code meaning = 未指定错误
source = microsoft oledb provider for odbc drivers
description = [microsoft][odbc 驱动程序管理器]数据源名称过长
这是什么意思,难道是因为数据库名称用的是中文,占太多字节?
肯定是这两句的原因,因为其他语句都先注释掉了
推荐阅读
try
cstring strconn("provider=sqloledb;data source=dianqi-zjf;initial catalog=马达控制中心数据库;");


讨论区