CString mDBparam ="";
tProvider = "sqloledb';
tDBServer = "192.168.22.211";
tDataBaseName = "evcs";
tUserName="sa";
tPassword="evcs";
mDBparam.Format("Provider='%s'; Network Library=DBMSSOCN; Data Source='%s';Persist SecurityInfo=False;Initial Catalog='%s';UID='%s';PWD='%s';", tProvider, tDBServer, tDataBaseName, tUserName, tPassword);
try
{
if (FAILED(tpCon->CreateInstance("ADODB.Connection")))
{
AfxMessageBox("Connection Create Instance failed!");
}
(*tpCon)->CommandTimeout = 20;
if ((*tpCon)->State==adStateOpen)
{
(*tpCon)->Close();
}
(*tpCon)->Open((_bstr_t)mDBparam, (_bstr_t)tUserName,(_bstr_t)tPassword, adConnectUnspecified);
}
catch(_com_error e)
{
TRACE("%s\n", (char *)e.Description());
return FALSE;
}
远程SQL SERVER服务器的ip地址是:192.168.22.211,数据库名是evcs,登录模式是混合登录模式,SQL SERVER身份验证下的用户名是SA,密码是EVCS;在服务器本机上用SQL SERVER身份验证可以登录,但是在另一台机子上用ADO登录就连不上,调试下报错为“SQL SERVER不存在或拒绝访问”,在SQL SERVER2005 management studio下已经将服务器设置为允许远程连接,在网络配置上已经禁用VIA协议,其他协议启用,两机子防火墙都关了。试了好多次都连不上,检查了代码无错误,请哪位大侠帮忙看看!小弟感激不尽!!!!!!!!!!!
22 个解决方案
#1
客户端上可以抓包工具等看看,看网络包的发送和接收等
#2
1. 用常量字符串测试一下
Provider=SQLOLEDB.1;Password=evcs;Persist Security Info=True;User ID=sa;Initial Catalog=evcs;Data Source=192.168.22.211
2. 在windows命令行下输入telnet 192.168.22.211 1433
此为检查网络链路及服务器端口是否正常服务
3.建立udl文件检测oleddb provider 是否可用
Provider=SQLOLEDB.1;Password=evcs;Persist Security Info=True;User ID=sa;Initial Catalog=evcs;Data Source=192.168.22.211
2. 在windows命令行下输入telnet 192.168.22.211 1433
此为检查网络链路及服务器端口是否正常服务
3.建立udl文件检测oleddb provider 是否可用
#3
4.在客户端机器中,使用SQL客户端配置,建立别名192.168.22.211 ,对应的server=192.168.22.211 ,端口1433
#4
Persist Security Info=True ,好像不对吧,要设置成false吧,true是以windows身份验证登录!我用客户机远程登录服务器是可以的说明两机子连接没问题。
#5
你装的是版的SQL SERVER 2005?
#6
Persist Security Info property specifies whether the data source can persist sensitive authentication information such as a password.
True:The data source object can persist sensitive authentication information such as a password along with other authentication information.
False:The data source object cannot persist sensitive authentication information.
设置为true,才可以使用混合登陆方式中的sa,为false,是用windows认证登陆
True:The data source object can persist sensitive authentication information such as a password along with other authentication information.
False:The data source object cannot persist sensitive authentication information.
设置为true,才可以使用混合登陆方式中的sa,为false,是用windows认证登陆
#7
楼主的这个属性设置为false,是不对的,因为你是请求的sa登陆,所以必须改为true。
#8
Provider=sqloledb;Data Source=192.168.22.211,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
这是2000哟,2005 sqloledb不行的。
这是2000哟,2005 sqloledb不行的。
#9
不会吧,2005不行吗?那2005应该怎么写?
#10
http://www.connectionstrings.com/sql-server这里找找,
#11
Persist Security Info设置成true 也不行!!
#12
还是用Udl文件测试吧,这和ADO是一样
#13
我装的是标准版的SQL SERVER2005
#14
Provider=SQLNCLI;Server=192.168.22.211;Database=myDataBase;Uid=myUsername; Pwd=myPassword;
数据源提供者是
Native Client OLE DB provider
-------------------
是不是EXPRESS版?
数据源提供者是
Native Client OLE DB provider
-------------------
是不是EXPRESS版?
#15
服务器是不是开了什么防火墙了?
#16
真遗憾,还没用过SQL2005
#17
你的连接字符串中用了一些不该用的单引号
你连接字符串用这样的格式看看
同时注意你服务器上SqlServer2005的配置
1. 配置SQL Server外围应用服务器,开启SQL Server 2005远程连接功能:
“配置工具”->“SQL Server外围应用配置器”-> 选择“服务和连接的外围应用配置器”->选择Database Engine节点下的 “远程连接”-> 选择“本地连接和远程连接”-> 选择“同时使用TCP/IP和named pipes”-> 点击确定,重新启动数据库服务。
2. 把登陆设置改为SQL Server 和 Windows 身份验证模式:
打开SQL Server Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQL Server 和 Windows 身份验证模式”。
3.修改SQL Server sa的密码:
在SQL Server Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。注意SQL Server2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。
4.设置SQL Server 的端口号
在SQL Server Configuration Manager管理器中,展开SQL Server 2005 Network Configuration项目 -> 单击下面的 Protocols for 'dbname' -> 在右侧的窗口中,右键单击"TCP/IP"项,选择"属性" -> 打开"TCP/IP properties"窗口 - > 单击"IP Address"选项卡 -> 将所有IP地址下面的 "TCP Port" 值设置成1433
5.确保开启SQL Server服务
在SQL Server Configuration Manager管理器中, 选中SQL Server 2005 Services,在右侧的窗口中启动SQL Server ('YourInstance'),
6. 修改连接字符串,在字符串中加入SQl Server 服务的端口号.
strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd");
你连接字符串用这样的格式看看
strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx;DATABASE=mydatabase;UID=name;PWD=pwd");
m_pConnection.CreateInstance(__uuidof(Connection));
_bstr_t strConnect = strConnection;
try
{
HRESULT hr = m_pConnection->Open(strConnect,(_bstr_t)m_sUser,(_bstr_t m_sPwd,NULL);
}
catch(...)
{
//MsgBox;
}
同时注意你服务器上SqlServer2005的配置
1. 配置SQL Server外围应用服务器,开启SQL Server 2005远程连接功能:
“配置工具”->“SQL Server外围应用配置器”-> 选择“服务和连接的外围应用配置器”->选择Database Engine节点下的 “远程连接”-> 选择“本地连接和远程连接”-> 选择“同时使用TCP/IP和named pipes”-> 点击确定,重新启动数据库服务。
2. 把登陆设置改为SQL Server 和 Windows 身份验证模式:
打开SQL Server Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQL Server 和 Windows 身份验证模式”。
3.修改SQL Server sa的密码:
在SQL Server Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。注意SQL Server2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。
4.设置SQL Server 的端口号
在SQL Server Configuration Manager管理器中,展开SQL Server 2005 Network Configuration项目 -> 单击下面的 Protocols for 'dbname' -> 在右侧的窗口中,右键单击"TCP/IP"项,选择"属性" -> 打开"TCP/IP properties"窗口 - > 单击"IP Address"选项卡 -> 将所有IP地址下面的 "TCP Port" 值设置成1433
5.确保开启SQL Server服务
在SQL Server Configuration Manager管理器中, 选中SQL Server 2005 Services,在右侧的窗口中启动SQL Server ('YourInstance'),
6. 修改连接字符串,在字符串中加入SQl Server 服务的端口号.
strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd");
#18
17楼的方法我做了,还是连不上啊!!郁闷啊 !!!
#19
http://news.newhua.com/news1/program_database/2008/515/0851585682BAKA77A13BC2AA2GI0D5DBKH7D7H93AD91AKIK95HHCB.html
看看这篇文章,能不能解决问题
看看这篇文章,能不能解决问题
#20
现在连不上,错误信息室什么?
#21
你先别忙用VC远程连,先用SQLServer客户端远程连连看,连上了再说
#22
我跟你遇到的问题差不多,你现在解决了吗,帮帮我吧
#1
客户端上可以抓包工具等看看,看网络包的发送和接收等
#2
1. 用常量字符串测试一下
Provider=SQLOLEDB.1;Password=evcs;Persist Security Info=True;User ID=sa;Initial Catalog=evcs;Data Source=192.168.22.211
2. 在windows命令行下输入telnet 192.168.22.211 1433
此为检查网络链路及服务器端口是否正常服务
3.建立udl文件检测oleddb provider 是否可用
Provider=SQLOLEDB.1;Password=evcs;Persist Security Info=True;User ID=sa;Initial Catalog=evcs;Data Source=192.168.22.211
2. 在windows命令行下输入telnet 192.168.22.211 1433
此为检查网络链路及服务器端口是否正常服务
3.建立udl文件检测oleddb provider 是否可用
#3
4.在客户端机器中,使用SQL客户端配置,建立别名192.168.22.211 ,对应的server=192.168.22.211 ,端口1433
#4
Persist Security Info=True ,好像不对吧,要设置成false吧,true是以windows身份验证登录!我用客户机远程登录服务器是可以的说明两机子连接没问题。
#5
你装的是版的SQL SERVER 2005?
#6
Persist Security Info property specifies whether the data source can persist sensitive authentication information such as a password.
True:The data source object can persist sensitive authentication information such as a password along with other authentication information.
False:The data source object cannot persist sensitive authentication information.
设置为true,才可以使用混合登陆方式中的sa,为false,是用windows认证登陆
True:The data source object can persist sensitive authentication information such as a password along with other authentication information.
False:The data source object cannot persist sensitive authentication information.
设置为true,才可以使用混合登陆方式中的sa,为false,是用windows认证登陆
#7
楼主的这个属性设置为false,是不对的,因为你是请求的sa登陆,所以必须改为true。
#8
Provider=sqloledb;Data Source=192.168.22.211,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
这是2000哟,2005 sqloledb不行的。
这是2000哟,2005 sqloledb不行的。
#9
不会吧,2005不行吗?那2005应该怎么写?
#10
http://www.connectionstrings.com/sql-server这里找找,
#11
Persist Security Info设置成true 也不行!!
#12
还是用Udl文件测试吧,这和ADO是一样
#13
我装的是标准版的SQL SERVER2005
#14
Provider=SQLNCLI;Server=192.168.22.211;Database=myDataBase;Uid=myUsername; Pwd=myPassword;
数据源提供者是
Native Client OLE DB provider
-------------------
是不是EXPRESS版?
数据源提供者是
Native Client OLE DB provider
-------------------
是不是EXPRESS版?
#15
服务器是不是开了什么防火墙了?
#16
真遗憾,还没用过SQL2005
#17
你的连接字符串中用了一些不该用的单引号
你连接字符串用这样的格式看看
同时注意你服务器上SqlServer2005的配置
1. 配置SQL Server外围应用服务器,开启SQL Server 2005远程连接功能:
“配置工具”->“SQL Server外围应用配置器”-> 选择“服务和连接的外围应用配置器”->选择Database Engine节点下的 “远程连接”-> 选择“本地连接和远程连接”-> 选择“同时使用TCP/IP和named pipes”-> 点击确定,重新启动数据库服务。
2. 把登陆设置改为SQL Server 和 Windows 身份验证模式:
打开SQL Server Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQL Server 和 Windows 身份验证模式”。
3.修改SQL Server sa的密码:
在SQL Server Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。注意SQL Server2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。
4.设置SQL Server 的端口号
在SQL Server Configuration Manager管理器中,展开SQL Server 2005 Network Configuration项目 -> 单击下面的 Protocols for 'dbname' -> 在右侧的窗口中,右键单击"TCP/IP"项,选择"属性" -> 打开"TCP/IP properties"窗口 - > 单击"IP Address"选项卡 -> 将所有IP地址下面的 "TCP Port" 值设置成1433
5.确保开启SQL Server服务
在SQL Server Configuration Manager管理器中, 选中SQL Server 2005 Services,在右侧的窗口中启动SQL Server ('YourInstance'),
6. 修改连接字符串,在字符串中加入SQl Server 服务的端口号.
strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd");
你连接字符串用这样的格式看看
strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx;DATABASE=mydatabase;UID=name;PWD=pwd");
m_pConnection.CreateInstance(__uuidof(Connection));
_bstr_t strConnect = strConnection;
try
{
HRESULT hr = m_pConnection->Open(strConnect,(_bstr_t)m_sUser,(_bstr_t m_sPwd,NULL);
}
catch(...)
{
//MsgBox;
}
同时注意你服务器上SqlServer2005的配置
1. 配置SQL Server外围应用服务器,开启SQL Server 2005远程连接功能:
“配置工具”->“SQL Server外围应用配置器”-> 选择“服务和连接的外围应用配置器”->选择Database Engine节点下的 “远程连接”-> 选择“本地连接和远程连接”-> 选择“同时使用TCP/IP和named pipes”-> 点击确定,重新启动数据库服务。
2. 把登陆设置改为SQL Server 和 Windows 身份验证模式:
打开SQL Server Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQL Server 和 Windows 身份验证模式”。
3.修改SQL Server sa的密码:
在SQL Server Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。注意SQL Server2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。
4.设置SQL Server 的端口号
在SQL Server Configuration Manager管理器中,展开SQL Server 2005 Network Configuration项目 -> 单击下面的 Protocols for 'dbname' -> 在右侧的窗口中,右键单击"TCP/IP"项,选择"属性" -> 打开"TCP/IP properties"窗口 - > 单击"IP Address"选项卡 -> 将所有IP地址下面的 "TCP Port" 值设置成1433
5.确保开启SQL Server服务
在SQL Server Configuration Manager管理器中, 选中SQL Server 2005 Services,在右侧的窗口中启动SQL Server ('YourInstance'),
6. 修改连接字符串,在字符串中加入SQl Server 服务的端口号.
strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd");
#18
17楼的方法我做了,还是连不上啊!!郁闷啊 !!!
#19
http://news.newhua.com/news1/program_database/2008/515/0851585682BAKA77A13BC2AA2GI0D5DBKH7D7H93AD91AKIK95HHCB.html
看看这篇文章,能不能解决问题
看看这篇文章,能不能解决问题
#20
现在连不上,错误信息室什么?
#21
你先别忙用VC远程连,先用SQLServer客户端远程连连看,连上了再说
#22
我跟你遇到的问题差不多,你现在解决了吗,帮帮我吧