解决ADO通过指定IP地址连接到SQLServer数据库时总是失败问题

      这几天在开发一个自己单位用的小平台,B/S结构,需要连接局域网内的SQLServer2005服务器,连接字符串在查了资料后是这样的:

      connectString="Provider=SQLOLEDB;DataSource=zhangyuxiang\\SQL2005;Database=dbname;Persist Security Info=False;User ID=sa;Password=12345678";

     测试连接成功,但如果将数据源DataSource改一下,变成:

      connectString="Provider=SQLOLEDB;DataSource=192.168.1.183,1433;Database=dbname;Persist Security Info=False;User ID=sa;Password=12345678";

     上面的IP地址是本机地址。连接总是不成功。后来查了百度,在圣才学习网搜索到一篇文章---“记录ADO方式连接SQLServer2008的问题解决”很感谢这位前辈,让我找到了希望。根据他的提示,我修改如下:

1. 打开SQLServer配置管理器->SQLServer网络配置->SQL2005的协议(要是您使用的那一个)->双击TCP/IP->Ip地址。
2. 找到ip地址为127.0.0.1的选栏将
TCP端口填上1433,已启用选择是
3. 找到ip地址为192.168.1.183(本机地址)的选栏将
TCP端口填上1433,已启用选择是
4. 然后再在主菜单的SQL服务中重启SQL2005服务即可。
  我以为这次是99%成功了,可结果还是连接失败,上午时光就这样过去了。
  下午午休后再查百度,在一篇提问“sql server 2005服务器名称填什么?”的回答里,有这样一段:
  选中右边协议名称TCP/IP,进入协议设置窗口。

        在IP地址栏中输入本机地址127.0.0.1,TCP端口改为1433,选择启用。在IPALL下面的TCP端口中设置为1433。(关键)

  根据他的提示,在IPALL下面的TCP端口中设置为1433后,果然成功,也很感谢回答问题的这位前辈。其实只要改一下参数就可搞定的,却花了我大半天时间。记录一下,让自己和其他人以后少走弯路。

  相关文章链接:

  记录ADO方式连接SQLServer2008的问题解决 http://it.100xuexi.com/view/otdetail/20130921/ff724491-0820-4723-8b31-17cd6dd4f46c.html

  sql server 2005服务器名称填什么? http://zhidao.baidu.com/question/500152670.html 


  

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
通过 ADO 在 C 语言中插入 SQL Server 数据库,可以参照以下示例代码: ```c #include <stdio.h> #include <windows.h> #include <ole2.h> #include <msado15.h> int main() { CoInitialize(NULL); _ConnectionPtr pConn; HRESULT hr; try { hr = pConn.CreateInstance(__uuidof(Connection)); if (FAILED(hr)) throw "Failed to create instance of Connection."; hr = pConn->Open("Provider=SQLOLEDB;Data Source=127.0.0.1;Initial Catalog=testdb;User ID=sa;Password=123456;", "", "", adConnectUnspecified); if (FAILED(hr)) throw "Failed to connect to database."; _RecordsetPtr pRs; hr = pRs.CreateInstance(__uuidof(Recordset)); if (FAILED(hr)) throw "Failed to create instance of Recordset."; hr = pRs->Open("INSERT INTO table1 (ID, Name) VALUES (1, 'Alice')", pConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdText); if (FAILED(hr)) throw "Failed to execute SQL statement."; pRs->Close(); pConn->Close(); } catch (char* e) { printf("%s\n", e); } CoUninitialize(); return 0; } ``` 在连接字符串中,需要指定 SQL Server 的 IP 地址数据库名称、用户名和密码。在执行 SQL 语句,可以使用 Recordset 对象来执行 INSERT、UPDATE、DELETE 等操作。需要注意的是,INSERT 语句中的值需要使用单引号括起来。 插入数据的操作类似于执行查询语句,可以使用 Recordset 对象来获取操作结果。在执行完毕后,需要调用 Recordset 和 Connection 对象的 Close 方法关闭连接和记录集。 需要注意的是,在使用 ADO 连接数据库之前,需要先调用 CoInitialize 函数进行 COM 初始化,使用完毕后需要调用 CoUninitialize 函数释放资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值