加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

尝试将Ruby连接到SQL Server时出现“Closed connection error”

发布时间:2020-12-16 19:08:17 所属栏目:百科 来源:网络整理
导读:这是我用来连接SQL Server 2012 express的代码.我的文件名是Connect.rb. require "rubygems"require "tiny_tds"client = TinyTds::Client.new( :username = 'sa',:password = 'sapassword',:dataserver = 'localhostSQLEXPRESS',:database = 'ContactsDB')r
这是我用来连接SQL Server 2012 express的代码.我的文件名是Connect.rb.
require "rubygems"
require "tiny_tds"
client = TinyTds::Client.new(
                    :username => 'sa',:password => 'sapassword',:dataserver => 'localhostSQLEXPRESS',:database => 'ContactsDB')
result = client.execute("SELECT * FROM [Contacts]")

当我运行代码时,我收到以下错误:

in ‘execute’ :closed connection (TinyTds::Error) from Connect.rb: in
‘main’

当我用以下代码替换上面的代码时,

client = TinyTds::Client.new(
                    :username => 'sa',:host => 'localhost',:port => 1433,:database => 'ContactsDB')

我收到以下错误:

in ‘connect’: Unable to connect: Adaptive server is unavailable or
does not exist

是什么导致了这个错误以及如何修复它?

解决方法

看起来配置没问题. dataserver是定义非默认实例的正确符号.

确保启用了TCP / IP和命名管道协议(默认情况下在SQL Express上禁用).还启用SQL Server Browser服务正在运行(默认情况下禁用).

您可以在Microsoft SQL Server /配置工具下的开始菜单中的Sql Server配置管理器中找到它们.请务必在“客户端协议”和每个列出的实例中启用它们.

此外,请确保您的防火墙允许SQL正在侦听的端口上的连接(默认为1433).

无需指定端口,因为Tiny-TDS默认为1433.您的第二个代码段不包含实例.如果在实例上安装了SQL Express,则需要使用dataserver,而不是host,并指定实例名称.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读