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
测试代码如下:
db = SqlServer.new
db.open
db.query("SELECT PLAYER FROM PLAYERS WHERE TEAM = 'REDS';")
field_names = db.fields
players = db.data
db.close
db = SqlServer.new('localhost', 'sa', 'SOMEPASSWORD')
db.open('Northwind')
db.query("SELECT * from Customers;")
puts field_names = db.fields
cust = db.data
puts cust.size
puts cust[0].inspect
db.close
抄到的别人版本的:
MSSQL
require "dbi"
require "win32ole"
WIN32OLE.codepage = WIN32OLE::CP_UTF8
require 'iconv'
Re_cn=/[\x7f-\xff]/
class MssqlDb
attr_accessor :mdb, :connection, :data, :fields
def initialize(host,mdb,user,pass)
@host= host
@mdb=@database= mdb
@username= user
@password= pass
@connection = nil
@data = nil
@fields = nil
end
def open
connection_string = "Provider=SQLOLEDB.1;User ID=@username;password=@password;Data Source=@host,1433;Initial Catalog=@mdb"
@connection = WIN32OLE.new('ADODB.Connection')
@connection.Open(connection_string)
@password=''
end
def query(sql)
recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(sql, @connection)
@fields = []
recordset.Fields.each do |field|
@fields << field.Name
end
begin
@data = recordset.GetRows.transpose
rescue
@data = []
end
recordset.Close
end
def queryGB(sql)
if sql=~ Re_cn
sql = utf8_to_gb(sql)
end
recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(sql, @connection)
@fields = []
recordset.Fields.each do |field|
@fields << field.Name
end
begin
@data = recordset.GetRows.transpose
rescue
@data = []
end
recordset.Close
end
def execute(sql)
@connection.Execute(sql)
end
def executeGB(sql)
if sql=~ Re_cn
sql = utf8_to_gb(sql)
end
@connection.Execute(sql)
end
def close
@connection.Close
end
def utf8_to_gb(s)
p 'conv to gb18030'
Iconv.conv("GB18030//IGNORE","UTF-8//IGNORE",s)
end
def gb_to_utf8(s)
p 'conv to utf8'
Iconv.conv("UTF-8//IGNORE","GB18030//IGNORE",s)
end
end
ACCESS
require "win32ole"
class AccessDb
attr_accessor :mdb, :connection, :data, :fields
def initialize(mdb=nil)
@mdb = mdb
@connection = nil
@data = nil
@fields = nil
end
def open
connection_string = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
connection_string << @mdb
@connection = WIN32OLE.new('ADODB.Connection')
@connection.Open(connection_string)
p 'access open ok.'
end
def query(sql)
recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(sql, @connection)
@fields = []
recordset.Fields.each do |field|
@fields << field.Name
end
begin
@data = recordset.GetRows.transpose
rescue
@data = []
end
recordset.Close
end
def execute(sql)
@connection.Execute(sql)
end
def close
@connection.Close
end
end
分享到:
相关推荐
SQL Server连接工具是数据库管理员和开发人员用于与Microsoft SQL Server交互的重要软件。这些工具提供了多种功能,包括数据库的创建、管理、查询、备份、恢复以及性能优化等。在本篇文章中,我们将深入探讨SQL ...
Linux平台下访问Windows平台的SQL Server数据库的方法 Linux操作系统作为微软Windows的主要竞争对手,已经在服务器领域取得了不小的成就。许多大型数据库厂商也纷纷推出了Linux版本的数据库管理系统,但是微软的SQL...
本文将基于“SQL Server连接字符串大全”的主题,详细介绍不同版本的SQL Server(如2000、2005等)及其不同环境下的连接字符串配置方法。 #### 一、SQL Server 2000连接字符串 对于SQL Server 2000版本,连接字符串...
可以通过 Windows 性能监视器来查看 SQL Server 数据库连接数。具体步骤如下: 1. 打开性能监视器,添加计数器,选择 SQL Server 的常用统计(MSSQL General Statistics)。 2. 在下面的项目中选择用户连接(User ...
### SQLServer连接ACCESS数据库的实现:深度解析与实践指南 #### 异构数据库连接概览 在企业级应用中,数据库通常不会局限于单一类型或品牌,而是存在多种数据库平台共存的情况,这被称为异构数据库环境。为了实现...
SQL Server 作为链接服务器连接 Oracle 数据库,需要配置 Windows 的 ODBC 数据源和 SQL Server 2000 中的连接服务器。下面将详细介绍配置过程和连接方法。 配置 Windows 的 ODBC 数据源 在 Windows 操作系统中,...
在默认情况下,SQL Server 2005 的配置是只允许本地连接,为了实现远程访问,需要进行一系列的设置。 **步骤1:** 打开SQL Server外围应用配置器。可以通过开始菜单找到该工具:开始 → 程序 → Microsoft SQL ...
"Windows Server 2008 内 SQL Server 建立 Linked Server 连接 Oracle" 在 Windows Server 2008 64 位操作系统中,使用 SQL Server 建立 Linked Server 连接 Oracle 数据库是一种常见的需求。然而,在 64 位操作...
### 配置 SQL Server 运行远程连接详细指南 #### 一、概述 在现代企业环境中,为了提高数据访问的灵活性和效率,通常需要配置 SQL Server 支持远程连接功能。本文将详细介绍如何通过一系列步骤来实现 SQL Server ...
本解决方案提供了一个专门用于构建和测试SQL Server连接字符串的工具。 首先,我们来了解SQL Server连接字符串的基本构成。一个标准的SQL Server连接字符串通常包含以下几个关键部分: 1. **数据源 (Data Source)*...
`m_pConnection->Open("driver={SQLServer};Server=192.168.1.100,1433;database=juyuwang;UID=sa;PWD=123456","","",adModeUnknown);` 其中,“192.168.1.100”是远程服务器的IP地址,“1433”是端口号。 结论 ...
URL通常格式为:`jdbc:sqlserver://<服务器地址>:<端口号>;databaseName=<数据库名>`。根据实际需求,可能还需要配置其他参数,如`integratedSecurity=true`(使用Windows身份验证)。 7. **测试连接**:配置完成后...
将登录方式设置为“Windows和SQL混合身份登录”,这允许系统尝试使用当前的Windows身份或SQL Server身份进行连接。如果问题依然存在,检查服务器上的SQL Server服务是否正常运行,并确保相应的服务账户具有足够的...
这是一个关键步骤,因为默认情况下,SQL Server可能不允许来自其他机器的连接。要开启远程连接,你需要遵循以下步骤: 1. **启动SQL Server Management Studio (SSMS)**:这是管理SQL Server的主要工具。通过它,你...
"用VB做端口扫描和SQL Server连接器"这个标题涉及了两个主要的IT技术领域:Visual Basic(VB)编程语言和数据库管理系统的连接,特别是与SQL Server的交互。VB是一种流行的微软开发环境,适用于创建桌面应用程序。...
本文将详细介绍ASP环境中SQL Server连接字符串的配置方式,包括不同版本的SQL Server和不同的应用场景。 首先,连接字符串是用于指定数据库服务器位置、登录凭证以及其它连接相关的参数的一种字符串。对于ASP与SQL ...
SQL Server客户端安装包是用于与Microsoft SQL Server进行交互的软件组件集合,它包含了连接到SQL Server、执行查询、管理数据库以及进行数据导入导出等任务所需的工具。在本压缩包中,主要包含了一个名为"SQL ...
标题中的“sqlserver驱动2012版”指的是SQL Server Native Client 2012,这是微软为SQL Server设计的一款数据库访问接口。SQL Server Native Client(简称SQLNCLI)是用于与SQL Server交互的一种客户端库,它包含了...
在本篇文章中,我们将深入探讨如何使用PowerBuilder(简称PB)通过OLE DB接口与SQL Server建立连接,并分别介绍两种不同的登录方法:Windows身份验证登录和混合身份验证登录。此外,我们还会详细介绍这两种登录方式...