用ADO连接本地数据库SQL Server2008,用VS2010在当前工程下建立了my_data.udl文件,然后双击后,测试数据库连接成功。代码中利用。
HRESULT hr;
try
{
//实例化连接对象
hr=m_pConnection.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
{
//设置连接串属性为UDL文件
m_pConnection->ConnectionString="File Name=my_data1.udl";
//设置等待连接打开的时间为20秒
m_pConnection->ConnectionTimeout=20;
hr=m_pConnection->Open("","","",adConnectUnspecified);
//hr = m_pConnection->Open(strConnect,"","",NULL);
if(FAILED(hr))
{
AfxMessageBox(TEXT("open fail!"));
return TRUE;
}
}
else
{
AfxMessageBox(TEXT("createinstance of Connection fail!"));
return TRUE;
}
}
catch (_com_error e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
AfxMessageBox(bstrSource+bstrDescription);
return TRUE;
}
7 个解决方案
#1
将my_data1.udl的内容复制赋值给m_pConnection->ConnectionString试试。
#2
#3
OLE初始化了没有,在工程的初始化函数里加上:AfxInitOle();
#4
改完以后出现:Microsoft OLE DB Provider for ODBC Drivers[Microsoft][ODBC驱动程序管理器]未发现数据源名称,并且为指定默认驱动程序
#5
我在InitInstance里面初始化完COM了。
#6
连接字符串里的驱动源改成类似Microsoft OLE DB1.1(具体忘了,就是后面有个版本号1.1),你在控制面板里的数据源里看看你的计算机里都有什么数据源,如果没有你建立一个数据源,但驱动是不变的
#7
问题解决了,建立.udl文件的时候,双击.udl文件后,输入sa,当输入密码后,点上“允许保存密码”单选框即可。这样就把密码写入到了.udl文件中了。
#1
将my_data1.udl的内容复制赋值给m_pConnection->ConnectionString试试。
#2
#3
OLE初始化了没有,在工程的初始化函数里加上:AfxInitOle();
#4
改完以后出现:Microsoft OLE DB Provider for ODBC Drivers[Microsoft][ODBC驱动程序管理器]未发现数据源名称,并且为指定默认驱动程序
#5
我在InitInstance里面初始化完COM了。
#6
连接字符串里的驱动源改成类似Microsoft OLE DB1.1(具体忘了,就是后面有个版本号1.1),你在控制面板里的数据源里看看你的计算机里都有什么数据源,如果没有你建立一个数据源,但驱动是不变的
#7
问题解决了,建立.udl文件的时候,双击.udl文件后,输入sa,当输入密码后,点上“允许保存密码”单选框即可。这样就把密码写入到了.udl文件中了。