`
tx984471
  • 浏览: 38743 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ruby连接sqlserver方法

    博客分类:
  • ROR
阅读更多
ruby


Rails提供了很好的My SQL支持,不须做任何配置,即可连接。但是,对于SQLServer的连接就比较烦琐。
下面将介绍一种采用Ruby-DBI 提供的一个ADO Driver来连接。
安装one -click installer 来安装ruby 的话就已经安装了所有连接SQL Server使用的需求包.但是,并没有安装ADO Driver.
这样来安装它:
1. 在Ruby目录下找到这个目录: \ruby\lib\ruby\site_ruby\1.8\DBD
例如:我的Ruby安装在D:\ruby中,所以是这个目录D:\ruby\lib\ruby\site_ruby\1.8\DBD
在该目录中创建一个ADO文件夹
2. 下载Ruby-DBI
3. 将lib/dbd_ado/ADO.rb文件拷贝到X:/ruby/lib/ruby/site_ruby/1.8/DBD/ADO/ADO.rb
patch x:\Ruby\lib\ruby\gems\1.8\gems\activerecord-1.10.1\lib\active_record\connection_adapters\sqlserver_adapter.rb 文件
SELECT COLUMN_NAME as... 改成
SELECT LOWER(COLUMN_NAME) as...
record[col] = row[col]改成record[col.downcase] = row[col]
在《Agile Web Development with Rails 》中 上边红色的部分是没有。
配置database.yml:
development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here

这样就可以连接上了.

通过以上修改的确可以连上并使用sql server数据库了,但如果使用“rake db:migrate”时你可能会碰到如下问题:

-- create_table("xxx_groups", {:force=>true})
rake aborted!
DBI::DatabaseError: Execute
    OLE error code:80040E14 in Microsoft OLE DB Provider for SQL Server
      第 3 个列或参数: 不能对数据类型 int 指定列宽度。
    HRESULT error code:0x80020009
      发生意外。: CREATE TABLE xxx_groups ([id] int NOT NULL IDENTITY(1, 1)
PRIMARY KEY, [built_in] bit DEFAULT 0 NOT NULL, [parent_id] int(11), [private_u
ser_id] int(11), [private_component_id] int(11), [name] varchar(192) DEFAULT ''
NOT NULL, [description] text DEFAULT '' NOT NULL, [created_on] datetime NOT NULL
, [updated_on] datetime NOT NULL)

从上面生成的sql可以看出问题的所在,int也定义了限制,在sql server中int的长度是固定的。
下面要继续修改sqlserver_adapter.rb文件
找到column_type_sql << "(#{limit})" if limit (rails 1.1.6版本在第477行)
改为
column_type_sql << "(#{limit})" if limit && native[:name]!="int"
原因sqlserver_adapter.rb自己在前面都说过了
# SQL Server only supports limits on *char and float types
这样 rake db:migrate也工作了。

BTW,
其实rails不是只在windows下才可以和sql server通信,在linux下和mac osx下也可以的,相关资源如下:
HowtoConnectToMicrosoftSQLServer
HowtoConnectToMicrosoftSQLServerFromRailsOnLinux
HowtoConnectToMicrosoftSQLServerFromRailsOnOSX
分享到:
评论

相关推荐

    Ruby连接使用windows下sql server数据库代码实例

    主要介绍了Ruby连接使用windows下sql server数据库代码实例,本文直接给出实现代码,而且给出了两种实现和access数据库的实现代码,需要的朋友可以参考下

    sql-server-样例-掌握.zip

    样本类别 端到端示例应用程序,这些示例应用程序说明了SQL ...这些示例显示了如何使用各种编程语言(包括Python,C#,F#,Java,Ruby,Node.js和PHP)连接到SQL数据库。 货柜 显示容器方案中各种SQL Server的示例。

    activerecord-sqlserver-adapter-mirroring:Rails 的数据库镜像支持 activerecord-sqlserver-adapter

    activerecord-sqlserver-adapter-mirroring 一个简单的插件,它为添加了数据库镜像支持。 目标 Rails 4.1.x 和 activerecord-sqlserver-adapter 4.1.0。 用法 添加到 Gemfile: gem 'tiny_tds' gem '...

    tiny_tds:TinyTDS-使用DB-Library的Ruby的简单,快速FreeTDS绑定

    TinyTDS gem旨在满足使用FreeTDS的DB-Library API将结果从Ruby连接,查询和迭代到Microsoft SQL Server或Sybase数据库的极其普通的用例。 TinyTDS提供对Ruby原语的自动转换以及适当的编码支持。 它将所有SQL ...

    ideologia:使用Ruby,PHP,AngularJS和Websockets设计的浏览器游戏

    准备: SQL.php连接中重复的客户端/ SQL connection.php.example文件调整数据库连接参数client / plateau.php:检查服务器正在运行的IP地址以进行websocket连接(例如:$ _SERVER ['SERVER_ADDR']) 执行

    dockersqlserver:分步配置用于您的应用程序的docker容器。 还显示了如何使用VSCode和Azure Data Studio配置连接

    使用Docker来处理SQL Server数据库,而无需在计算机上进行安装。 关于Docker的一些解释 用其他语言阅读:, 想象一下,您正在工作或正在学习许多不同的技术,我的情况,有罪!!! 或我们中许多使用NodeJS , React ...

    ibm_data_server_client_winx64_v11.5.part1.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_win32_v11.5.part1.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_winx64_v11.5.part6.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_win32_v11.5.part4.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_winx64_v11.5.part3.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_win32_v11.5.part3.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_winx64_v11.5.part2.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_win32_v11.5.part5.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_winx64_v11.5.part4.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    dacpac:厨师食谱来部署dacpac文件

    描述 提供用于部署Visual Studio数据库项目的数据库工具。... connection_string -SQL Server连接字符串。 示例:“数据源=本地主机;用户ID = sa;密码= ***;” database_name将在其中部署dacpac文件的数据库

    ibm_data_server_client_winx64_v11.5.part5.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    ibm_data_server_client_win32_v11.5.part2.rar

    sqldbx连接db2必备 IBM 数据服务器客户机版本 11.5.0.0 。多合一版本包含各类驱动JDBC、ODBC、CLI等 IBM 数据服务器客户机是用于 DB2 数据服务器的一组客户机应用程序驱动程序和工具。它支持运行使用了嵌入式 SQL...

    JAVA上百实例源码以及开源项目

    第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动...

Global site tag (gtag.js) - Google Analytics