`

windows下sql server连接

阅读更多
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  
分享到:
评论

相关推荐

    SqlServer连接工具

    SQL Server连接工具是数据库管理员和开发人员用于与Microsoft SQL Server交互的重要软件。这些工具提供了多种功能,包括数据库的创建、管理、查询、备份、恢复以及性能优化等。在本篇文章中,我们将深入探讨SQL ...

    Linux平台下访问Windows平台的SQL Server数据库的方法.pdf

    Linux平台下访问Windows平台的SQL Server数据库的方法 Linux操作系统作为微软Windows的主要竞争对手,已经在服务器领域取得了不小的成就。许多大型数据库厂商也纷纷推出了Linux版本的数据库管理系统,但是微软的SQL...

    sqlserver连接字符串大全

    本文将基于“SQL Server连接字符串大全”的主题,详细介绍不同版本的SQL Server(如2000、2005等)及其不同环境下的连接字符串配置方法。 #### 一、SQL Server 2000连接字符串 对于SQL Server 2000版本,连接字符串...

    如何查看sql server数据库连接数

    可以通过 Windows 性能监视器来查看 SQL Server 数据库连接数。具体步骤如下: 1. 打开性能监视器,添加计数器,选择 SQL Server 的常用统计(MSSQL General Statistics)。 2. 在下面的项目中选择用户连接(User ...

    SQLServer连接ACCESS数据库的实现

    ### SQLServer连接ACCESS数据库的实现:深度解析与实践指南 #### 异构数据库连接概览 在企业级应用中,数据库通常不会局限于单一类型或品牌,而是存在多种数据库平台共存的情况,这被称为异构数据库环境。为了实现...

    sqlserver连接oracle

    SQL Server 作为链接服务器连接 Oracle 数据库,需要配置 Windows 的 ODBC 数据源和 SQL Server 2000 中的连接服务器。下面将详细介绍配置过程和连接方法。 配置 Windows 的 ODBC 数据源 在 Windows 操作系统中,...

    SQL Server 2005 启用远程连接

    在默认情况下,SQL Server 2005 的配置是只允许本地连接,为了实现远程访问,需要进行一系列的设置。 **步骤1:** 打开SQL Server外围应用配置器。可以通过开始菜单找到该工具:开始 → 程序 → Microsoft SQL ...

    Windows Server 2008 内SQLServer建立Linked Server连接Oracle

    "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连接字符串的工具。 首先,我们来了解SQL Server连接字符串的基本构成。一个标准的SQL Server连接字符串通常包含以下几个关键部分: 1. **数据源 (Data Source)*...

    MFC连接SQL Server数据库

    `m_pConnection-&gt;Open("driver={SQLServer};Server=192.168.1.100,1433;database=juyuwang;UID=sa;PWD=123456","","",adModeUnknown);` 其中,“192.168.1.100”是远程服务器的IP地址,“1433”是端口号。 结论 ...

    myeclipse连接sql server需要的驱动

    URL通常格式为:`jdbc:sqlserver://&lt;服务器地址&gt;:&lt;端口号&gt;;databaseName=&lt;数据库名&gt;`。根据实际需求,可能还需要配置其他参数,如`integratedSecurity=true`(使用Windows身份验证)。 7. **测试连接**:配置完成后...

    Sql Server 2005的连接问题的解决方法

    将登录方式设置为“Windows和SQL混合身份登录”,这允许系统尝试使用当前的Windows身份或SQL Server身份进行连接。如果问题依然存在,检查服务器上的SQL Server服务是否正常运行,并确保相应的服务账户具有足够的...

    VS2015 连接sql server

    这是一个关键步骤,因为默认情况下,SQL Server可能不允许来自其他机器的连接。要开启远程连接,你需要遵循以下步骤: 1. **启动SQL Server Management Studio (SSMS)**:这是管理SQL Server的主要工具。通过它,你...

    用VB做端口扫描和SQL Server连接器.

    "用VB做端口扫描和SQL Server连接器"这个标题涉及了两个主要的IT技术领域:Visual Basic(VB)编程语言和数据库管理系统的连接,特别是与SQL Server的交互。VB是一种流行的微软开发环境,适用于创建桌面应用程序。...

    ASP的SQL Server连接字符串介绍

    本文将详细介绍ASP环境中SQL Server连接字符串的配置方式,包括不同版本的SQL Server和不同的应用场景。 首先,连接字符串是用于指定数据库服务器位置、登录凭证以及其它连接相关的参数的一种字符串。对于ASP与SQL ...

    sql server客户端安装包

    SQL Server客户端安装包是用于与Microsoft SQL Server进行交互的软件组件集合,它包含了连接到SQL Server、执行查询、管理数据库以及进行数据导入导出等任务所需的工具。在本压缩包中,主要包含了一个名为"SQL ...

    pb连接SqlServer所需的dll文件

    在本例中,这些DLL文件可能是用于SQL Server连接的驱动程序或API,如SQL Native Client或ODBC(开放数据库连接)驱动。 1. **SQL Native Client**:这是微软提供的一个数据库访问接口,专门用于高效、高性能地连接...

    sqlserver驱动2012版

    标题中的“sqlserver驱动2012版”指的是SQL Server Native Client 2012,这是微软为SQL Server设计的一款数据库访问接口。SQL Server Native Client(简称SQLNCLI)是用于与SQL Server交互的一种客户端库,它包含了...

Global site tag (gtag.js) - Google Analytics