Class: Db
- Inherits:
-
Object
- Object
- Db
- Defined in:
- app/models/db.rb
Constant Summary collapse
- AdapterType =
{ Mysql: "mysql2", PostgreSQL: "postgresql", Sqlserver: "sqlserver", Oracle: "oracle" }
Class Method Summary collapse
- .adapter_options ⇒ Object
- .mysql_query(conectstr, sql) ⇒ Object
- .oracle_query(conectstr, sql) ⇒ Object
- .postgresql_query(conectstr, sql) ⇒ Object
- .sqlserver_query(conectstr, sql) ⇒ Object
Class Method Details
.adapter_options ⇒ Object
9 10 11 |
# File 'app/models/db.rb', line 9 def self. [["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 |