此处有一ADOConn类,专门用来操作sqlserver数据库的连接
// 初始化—连接数据库
void ADOConn::OnInitADOConn()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = "Provider=SQLOLEDB.1; Server=127.0.0.1,1433; Database=frid; uid=frid; pwd=123;";
// _bstr_t strConnect = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=frid;PWD=123;Initial Catalog=master;Data Source=127.0.0.1,1433";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
}
最初红色部分总是会出错,[DBNETLIB][ConnectionOpen(Invalid Instance())] 无效的连接 的解决办法
或[DBNETLIB][ConnectionOpen。。。 拒绝访问。。。
可以从以下几点排查错误:
1. 先检查数据库连接参数是否有误,有的时候缺少一些东西,可能就连不上,前面红色部分,我没有添加1433端口号,结果总是出错
加上之后,就ok了,现在红色部分,两个参数设置都能连接成功,可以参考下。
2. 在防火墙中检查1433端口是否打开了
3. 检查sqlserver服务是否起来了,同时在sqlserver configraton manager 中,在网络设置中,将tcpip属性-ip地址中,将tcp all的port 添加上1433端口
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=192.168.1.28,1433
连接SQL server 2008 报错: [DBNETLIB][ConnectionOpen (Invalid Instance()).]
[DBNETLIB][ConnectionOpen (Invalid Instance()).]无效的连接。
以前写的是:
“Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PWD=**;Initial Catalog=DatabaseName;Data Source=IP”
解决方法1:
改成
“Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PWD=**;Initial Catalog=DatabaseName;Data Source=IP,1433″
就是把”Data Sourse = IP” 改为”Data Sourse = IP,端口”,就连接正常
解决方法2:
改成
“Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PWD=**;Initial Catalog=DatabaseName;Data Source=IP,1433″
就是把”Data Sourse = IP” 改为”Data Sourse = 服务器别名(如localhost\sqlexpress,就是打开SQL Server Management Studio Express时在左侧上端那个名字)”,就连接正常
阅读(5939) | 评论(0) | 转发(0) |