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!
分享到:
相关推荐
本主题将深入探讨如何在Rails应用中使用SQL Server作为数据存储,特别关注`activerecord-sqlserver-adapter`这个gem,它使得Ruby的ActiveRecord能够与Microsoft SQL Server无缝集成。 `activerecord-sqlserver-...
在Ruby中连接到Microsoft SQL Server数据库,你可以使用tiny_tds或者odbc等gem。附件是使用tiny_tds gem的一个基本示例 请将your_server_name、your_database_name、your_username、your_password和your_table_name...
在Ruby on Rails框架中,与SQLServer 2000集成可能会比与其他常见的数据库系统(如MySQL或PostgreSQL)稍复杂一些,因为SQLServer 2000的兼容性问题和缺少官方支持。然而,通过一些第三方库和适当的配置,我们仍然...
如果你想要在ActiveRecord框架中使用Tiny_TDS,你需要额外安装`activerecord-sqlserver-adapter` gem: ``` gem install activerecord-sqlserver-adapter ``` 然后,在`config/database.yml`文件中配置数据库连接...
1. **初始化**:创建了一个`SqlServer`类用于管理数据库连接和查询。 2. **打开连接**:通过`win32ole`创建了`ADODB.Connection`对象,并设置了连接字符串,其中包括了数据库服务器的地址、用户名、密码等信息。 3. ...
样本类别 端到端示例应用程序,这些示例应用程序说明了SQL ...这些示例显示了如何使用各种编程语言(包括Python,C#,F#,Java,Ruby,Node.js和PHP)连接到SQL数据库。 货柜 显示容器方案中各种SQL Server的示例。
首先,根据文档标题和描述,我们可以明确这篇指南主要讲述了如何使用MySQL Workbench中的Migration Wizard工具来实现从Microsoft SQL Server到MySQL的数据库迁移。Migration Wizard是一个图形化的工具,它能够指导...
3. **建立连接**:使用`Sybase::Sybct.connect`方法建立到Sybase数据库的连接。 ```ruby conn = Sybase::Sybct.connect(connection_config) ``` 这里,`conn`变量会存储连接对象,后续的数据库操作都将基于这个连接...
"Ruby-rubyserver标准文件协议的生产就绪实现" 提到的是一个专门针对Ruby实现的、遵循标准文件协议的服务器解决方案,适用于生产环境。这种实现确保了在高并发和稳定性的需求下,服务器依然能高效、可靠地运行。 1....
标签“Ruby开发-数据库驱动器”表明这与Ruby语言的数据库连接有关,TinyTDS就是这样的工具,为Ruby提供了一种与SQL Server交互的方式。 在压缩包文件“tiny_tds-master”中,我们可以预期找到TinyTDS项目的源代码...
总结来说,连接Ruby和Drizzle数据库涉及到使用`DBI`库,配置ODBC连接,编写SQL查询,以及可能的事务和错误处理。通过这样的连接,开发者能够有效地在Ruby应用程序中存取和管理Drizzle数据库的数据。同时,对源码的...
这个“使用PetaPoco ORM管理SQLServer,SQLIte,MySQL和ProgreSQL数据库”的主题,旨在展示PetaPoco如何与多种数据库类型无缝集成,包括SQL Server、SQLite、MySQL和PostgreSQL。 首先,PetaPoco的简单性和高效性是...
对于连接到Microsoft SQL Server(MSSQL),则需要使用不同的适配器,例如`sqlserver`或`tinytds`,并且可能需要额外的库,如`activerecord-sqlserver-adapter`。配置可能会类似这样: ```yaml production: ...
本文将详细介绍11种常见的数据库连接方法,涵盖多种编程语言和数据库类型。 1. **Java JDBC(Java Database Connectivity)** Java 提供了JDBC API,使得Java程序能够与各种类型的数据库进行交互。开发者需要加载...
activerecord-sqlserver-adapter-mirroring 一个简单的插件,它为添加了数据库镜像支持。 目标 Rails 4.1.x 和 activerecord-sqlserver-adapter 4.1.0。 用法 添加到 Gemfile: gem 'tiny_tds' gem '...
FreeTDS是一个开源的软件项目,它为Unix和Linux系统提供了连接Microsoft SQL Server和Sybase数据库的能力。这个软件包名为“freetds-0.95.80.tar.gz”,表明这是FreeTDS的一个版本0.95.80的源代码压缩包,通常以`....
首先,连接Oracle数据库需要Ruby的一个特定库——Ruby/Oracle 调用接口 (OCI8),它是基于Ruby/DBI模块的数据库驱动程序。RubyDBI提供了一个抽象层,使得开发者能够使用统一的API与不同的数据库系统(如JDBC或ODBC)...