Class: Db

Inherits:
Object
  • Object
show all
Defined in:
app/models/db.rb

Constant Summary collapse

AdapterType =
{
    Mysql: "mysql2",
    PostgreSQL: "postgresql",
    Sqlserver: "sqlserver",
    Oracle: "oracle"
}

Class Method Summary collapse

Class Method Details

.adapter_optionsObject



9
10
11
# File 'app/models/db.rb', line 9

def self.adapter_options
  [["Mysql", AdapterType[:Mysql]], ["PostgreSQL", AdapterType[:PostgreSQL]], ["Sqlserver", AdapterType[:Sqlserver]], ["Oracle", AdapterType[:Oracle]]]
end

.mysql_query(conectstr, sql) ⇒ Object



30
31
32
33
34
35
36
# File 'app/models/db.rb', line 30

def self.mysql_query(conectstr, sql)
  result = []
  Mysql2::Client.new(conectstr).query(sql).each do |r|
    result << r
  end
  result
end

.oracle_query(conectstr, sql) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/models/db.rb', line 13

def self.oracle_query(conectstr, sql)
  require 'ruby-oci8'
  result = []
  conn = OCI8.new(conectstr["username"], conectstr["password"], "#{conectstr["host"]}:#{conectstr["port"]}/#{conectstr["database"]}")
  cursor = conn.parse(sql)
  cursor.exec
  while r = cursor.fetch_hash()
    r.each do |n, v|
      unless v
        r[n] = "其他"
      end
    end
    result << r
  end
  result
end

.postgresql_query(conectstr, sql) ⇒ Object



38
39
40
41
# File 'app/models/db.rb', line 38

def self.postgresql_query(conectstr, sql)
  conn = PG::Connection.new(host:conectstr["host"],dbname:conectstr["database"],user:conectstr["username"],password:conectstr["password"])
  conn.exec(sql).to_a
end

.sqlserver_query(conectstr, sql) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'app/models/db.rb', line 43

def self.sqlserver_query(conectstr, sql)
  connstr = {}
  conectstr.each { |k, v| connstr[k.to_sym]=v }
  result = []
  TinyTds::Client.new(connstr).execute(sql).each do |row|
    result << row
  end
  result
end