`
cab0605
  • 浏览: 108703 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Ruby sqlserver 连接方法

阅读更多

require 'win32ole'

class SqlServer
    # This class manages database connection and queries
    attr_accessor :connection, :data, :fields

    def initialize
        @connection = nil
        @data = nil
    end

    def open
        # Open ADO connection to the SQL Server database
        connection_string =  "Provider=SQLOLEDB.1;"
        connection_string << "Persist Security Info=False;"
        connection_string << "User ID=USER_ID;"
        connection_string << "password=PASSWORD;"
        connection_string << "Initial Catalog=DATABASE;"
        connection_string << "Data Source=IP_ADDRESS;"
        connection_string << "Network Library=dbmssocn"
        @connection = WIN32OLE.new('ADODB.Connection')
        @connection.Open(connection_string)
    end

    def query(sql)
        # Create an instance of an ADO Recordset
        recordset = WIN32OLE.new('ADODB.Recordset')
# Open the recordset, using an SQL statement and the
        # existing ADO connection
        recordset.Open(sql, @connection)
        # Create and populate an array of field names
        @fields = []
        recordset.Fields.each do |field|
            @fields << field.Name
        end
        begin
            # Move to the first record/row, if any exist
            recordset.MoveFirst
            # Grab all records
            @data = recordset.GetRows
        rescue
            @data = []
        end
        recordset.Close
# An ADO Recordset's GetRows method returns an array
        # of columns, so we'll use the transpose method to
        # convert it to an array of rows
        @data = @data.transpose
    end

    def close
        @connection.Close
    end
end

You can then use this class as follows:

db = SqlServer.new
db.open
db.query("SELECT PLAYER FROM PLAYERS WHERE TEAM = 'REDS';")
field_names = db.fields
players = db.data
db.close

The above code is, of course, incomplete and can certainly be improved and extended (error handling, etc.). But, hopefully, it provides you with a solid foundation on which to build.

UPDATE: You might like to know that you can automate many of your SQL Server administrative tasks by leveraging Distributed Management Objects (SQL-DMO). I've explained this in a later article here.

Thanks for stopping by!

分享到:
评论

相关推荐

    Ruby-SQLServerRailsActiveRecord的SQLServer适配器

    本主题将深入探讨如何在Rails应用中使用SQL Server作为数据存储,特别关注`activerecord-sqlserver-adapter`这个gem,它使得Ruby的ActiveRecord能够与Microsoft SQL Server无缝集成。 `activerecord-sqlserver-...

    Ruby连接Microsoft SQL Server数据库

    在Ruby中连接到Microsoft SQL Server数据库,你可以使用tiny_tds或者odbc等gem。附件是使用tiny_tds gem的一个基本示例 请将your_server_name、your_database_name、your_username、your_password和your_table_name...

    rails配置sqlserver2000

    在Ruby on Rails框架中,与SQLServer 2000集成可能会比与其他常见的数据库系统(如MySQL或PostgreSQL)稍复杂一些,因为SQLServer 2000的兼容性问题和缺少官方支持。然而,通过一些第三方库和适当的配置,我们仍然...

    Ruby中访问SQL Server数据库的配置实例

    如果你想要在ActiveRecord框架中使用Tiny_TDS,你需要额外安装`activerecord-sqlserver-adapter` gem: ``` gem install activerecord-sqlserver-adapter ``` 然后,在`config/database.yml`文件中配置数据库连接...

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

    1. **初始化**:创建了一个`SqlServer`类用于管理数据库连接和查询。 2. **打开连接**:通过`win32ole`创建了`ADODB.Connection`对象,并设置了连接字符串,其中包括了数据库服务器的地址、用户名、密码等信息。 3. ...

    sql-server-样例-掌握.zip

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

    从sql server完美迁移到MySql-使用Migration Wizard

    首先,根据文档标题和描述,我们可以明确这篇指南主要讲述了如何使用MySQL Workbench中的Migration Wizard工具来实现从Microsoft SQL Server到MySQL的数据库迁移。Migration Wizard是一个图形化的工具,它能够指导...

    ruby 与 sybase 连接

    3. **建立连接**:使用`Sybase::Sybct.connect`方法建立到Sybase数据库的连接。 ```ruby conn = Sybase::Sybct.connect(connection_config) ``` 这里,`conn`变量会存储连接对象,后续的数据库操作都将基于这个连接...

    Ruby-rubyserver标准文件协议的生产就绪实现

    "Ruby-rubyserver标准文件协议的生产就绪实现" 提到的是一个专门针对Ruby实现的、遵循标准文件协议的服务器解决方案,适用于生产环境。这种实现确保了在高并发和稳定性的需求下,服务器依然能高效、可靠地运行。 1....

    Ruby-TinyTDS简单快速的FreeTDS绑定Ruby使用DBLibrary

    标签“Ruby开发-数据库驱动器”表明这与Ruby语言的数据库连接有关,TinyTDS就是这样的工具,为Ruby提供了一种与SQL Server交互的方式。 在压缩包文件“tiny_tds-master”中,我们可以预期找到TinyTDS项目的源代码...

    ruby和drizzle数据库的连接

    总结来说,连接Ruby和Drizzle数据库涉及到使用`DBI`库,配置ODBC连接,编写SQL查询,以及可能的事务和错误处理。通过这样的连接,开发者能够有效地在Ruby应用程序中存取和管理Drizzle数据库的数据。同时,对源码的...

    使用PetaPoco ORM管理SQLServer,SQLIte,MySQL和ProgreSQL数据库

    这个“使用PetaPoco ORM管理SQLServer,SQLIte,MySQL和ProgreSQL数据库”的主题,旨在展示PetaPoco如何与多种数据库类型无缝集成,包括SQL Server、SQLite、MySQL和PostgreSQL。 首先,PetaPoco的简单性和高效性是...

    Ruby on rails 数据库详细配置

    对于连接到Microsoft SQL Server(MSSQL),则需要使用不同的适配器,例如`sqlserver`或`tinytds`,并且可能需要额外的库,如`activerecord-sqlserver-adapter`。配置可能会类似这样: ```yaml production: ...

    11种连接数据库的方法

    本文将详细介绍11种常见的数据库连接方法,涵盖多种编程语言和数据库类型。 1. **Java JDBC(Java Database Connectivity)** Java 提供了JDBC API,使得Java程序能够与各种类型的数据库进行交互。开发者需要加载...

    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 '...

    freetds-0.95.80.tar.gz

    FreeTDS是一个开源的软件项目,它为Unix和Linux系统提供了连接Microsoft SQL Server和Sybase数据库的能力。这个软件包名为“freetds-0.95.80.tar.gz”,表明这是FreeTDS的一个版本0.95.80的源代码压缩包,通常以`....

    巧用Ruby配备Oracle数据库

    首先,连接Oracle数据库需要Ruby的一个特定库——Ruby/Oracle 调用接口 (OCI8),它是基于Ruby/DBI模块的数据库驱动程序。RubyDBI提供了一个抽象层,使得开发者能够使用统一的API与不同的数据库系统(如JDBC或ODBC)...

Global site tag (gtag.js) - Google Analytics