Ruby连SQLserver和access的详细方法加测试程序
2015-08-16 19:32:21   来源:3S科技_网站建设_软件开发_企业各种解决方案_www.011s.com   评论:0 点击:

Ruby连SQLserver和access的详细方法加测试程序
Ruby连SQLserver和access的详细方法加测试程序 ------------------------------------------------------------------------------------ #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

相关热词搜索:Ruby连SQLserver和access的详细方法加测试程序

上一篇:用Ruby的Watir实现自动发贴顶贴 -- IE语法
下一篇:最后一页

分享到: 收藏
评论排行
频道总排行
频道本月排行
  • 2016年生肖表排码表, 中马堂论坛22446.C0m丨
  • 红姐统一备用图库, 什么生肖半夜出门
  • 黄大仙天机诗, 白天鹅心水论坛
  • 内幕主论坛, 管家婆论坛手机网站
  • 香港马经123, 2017年另版萄京赌侠诗
  • 香港tm46马分析网合, 2019最准输尽光001,153
  • 9944天下彩免费资料
  • 2019一句玄机料全年
  • 新内幕-B, 骞马会四不像中特
  • 马报四不像必中一肖, 香港挂牌彩图
  • 每期四不像中特图ll, 精准四不像特肖图 正版
  • 香港2019四不像玄机图
  • 2019香港四不像玄机图, 行乐须及春打一肖
  • 福满堂主论坛, 单双王单双王全年资料
  • 看图码解资料108期
  • 今日什么特马图片
  • 台湾妈祖灵码-2, 不死码-1
  • 王中王四不像一肖中马
  • 2019年最准输尽光资村, 113期四不像中特
  • 高手杀肖统计, 香港正版四不像生肖
  • 男肖女肖中特, 天线宝宝.com
  • 白小姐图片 一肖中特, 欲钱料2019年001一152
  • 买马生肖表图 2019, 2001开奖记录完整
  • 本港台开奖现场直播www.99kj.com, 惠泽社群论坛
  • 一语中特四方八面什么生肖, 大半夜是哪个生肖