`
yanzilee9292
  • 浏览: 528337 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

windows上用ruby连接sqlserver方法

    博客分类:
  • ruby
 
阅读更多

可以通过windows特有的ADO来连接, 需要借助于WIN32OLE, 不是最好的方法, 但是够用.

 

require "win32ole"

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

 

 

 

分享到:
评论

相关推荐

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

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

    ibm_data_server_client_win32_v11.5.part5.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文件的数据库

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

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

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

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    教务系统设计数据库设计.doc

    MySQL数据库以及Perl、Python或者PHP编程语言的结合)组合 重要组成部分,同时它提供的C API可以结合Glade/GTK+,代替Windows平台的VB+ACCESS/MS SQL SERVER组合。 MySQL数据库具有以下特性: 使用C和C++编写,并...

    教务系统设计数据库设计(1).doc

    MySQL数据库以及Perl、Python或者PHP编程语言的结合)组合 重要组成部分,同时它提供的C API可以结合Glade/GTK+,代替Windows平台的VB+ACCESS/MS SQL SERVER组合。 MySQL数据库具有以下特性: 使用C和C++编写,并...

    若干源程序资料12.rar

    2012-06-11 21:06 3,769,694 基于LABVIEW编程环境的SQLSERVER ACCESS MYSQL 数据库的测试源代码.rar 2012-06-11 21:12 81,505 基于神经网络的文字识别系统.rar 2012-06-11 21:07 39,498 基因遗传算法.zip 2012-06-11...

Global site tag (gtag.js) - Google Analytics