最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ruby連接使用windows下sql server數(shù)據(jù)庫代碼實例

 更新時間:2015年05月26日 10:13:16   投稿:junjie  
這篇文章主要介紹了Ruby連接使用windows下sql server數(shù)據(jù)庫代碼實例,本文直接給出實現(xiàn)代碼,而且給出了兩種實現(xiàn)和access數(shù)據(jù)庫的實現(xiàn)代碼,需要的朋友可以參考下
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 


  • 升級到mac 10.10之后使用pod出現(xiàn)問題的解決方法

    升級到mac 10.10之后使用pod出現(xiàn)問題的解決方法

    這篇文章主要介紹了升級到mac 10.10之后使用pod出現(xiàn)問題的解決方法,需要的朋友可以參考下
    2014-07-07
  • Ruby self在不同環(huán)境的含義

    Ruby self在不同環(huán)境的含義

    Ruby的self在不同的環(huán)境中有不同的含義,這點和java的this不同,原因是java實際上只有一種環(huán)境--在class的實例方法定義中使用,代表訪問這個方法參數(shù)自動傳進的那個對象。
    2008-12-12
  • 對Ruby on Rails進行高效的單元測試的教程

    對Ruby on Rails進行高效的單元測試的教程

    這篇文章主要介紹了在Ruby on Rails中進行高效的單元測試的教程,使用到了Ruby的RSpec和Factory Girl框架,需要的朋友可以參考下
    2015-04-04
  • Ruby中字符串左側(cè)補零方法實例

    Ruby中字符串左側(cè)補零方法實例

    這篇文章主要介紹了Ruby中字符串左側(cè)補零方法實例,常用的方法是使用字符的rjust方法來實現(xiàn),需要的朋友可以參考下
    2014-06-06
  • Ruby中的public、private、protected區(qū)別小結(jié)

    Ruby中的public、private、protected區(qū)別小結(jié)

    這篇文章主要介紹了Ruby中的public、private、protected區(qū)別小結(jié),即Ruby中訪問控制符的區(qū)別總結(jié),需要的朋友可以參考下
    2014-08-08
  • Ruby中require、load、include、extend的區(qū)別介紹

    Ruby中require、load、include、extend的區(qū)別介紹

    這篇文章主要介紹了Ruby中require、load、include、extend的區(qū)別介紹,require、load用于文件,如.rb等等結(jié)尾的文件,include、load則用于包含一個文件中的模塊,需要的朋友可以參考下
    2015-05-05
  • 簡單對比分析Ruby on Rails 和 Laravel

    簡單對比分析Ruby on Rails 和 Laravel

    web應(yīng)用程序開發(fā)中兩個相對而言更加流行的框架是 Ruby on Rails 和 Laravel. 它們兩個都是非常成熟的項目,已經(jīng)面世相當長一段時間了 .
    2014-07-07
  • 最新評論

    普兰县| 琼中| 宜良县| 峨山| 奉节县| 永仁县| 揭阳市| 绍兴市| 道孚县| 汾阳市| 繁昌县| 南昌市| 崇文区| 喀喇| 西乌珠穆沁旗| 河南省| 新兴县| 措勤县| 阆中市| 庆安县| 台北县| 河东区| 新郑市| 海兴县| 临汾市| 南召县| 繁昌县| 伊川县| 瑞金市| 齐齐哈尔市| 壶关县| 清流县| 华亭县| 盘山县| 正安县| 巴马| 新竹县| 襄樊市| 宜春市| 贵德县| 盐津县|