class Jdbc::MySQL
Public Class Methods
new(host,user,password,dbase)
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 16 def initialize(host,user,password,dbase) @host=host @user=user @password=password @dbase=dbase @conn = Jdbc::DriverManager.getConnection("jdbc:mysql://#{@host}/#{@dbase}?user=#{@user}&password=#{@password}&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false"); end
Public Instance Methods
escape_string(string)
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 96 def escape_string(string) #we do nothing yet string end
fetch_hash(res,with_table=false)
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 54 def fetch_hash(res,with_table=false) begin data=Array.new unless res.nil? while res.next do md=res.meta_data row=Hash.new i=1 while i<=md.column_count do header=if with_table then md.table_name(i)+"."+md.column_label(i) else md.column_label(i) end row[header]=res.getString(md.column_label(i)) i+=1 end data.push(row) end end return data rescue =>e eerror("metadata:#{md.inspect}\nrow:#{row.inspect}\nheader:#{header.inspect},colnum:#{i}") eerror("error preparing the result:#{e}\n #{e.backtrace.join("\n\t")}") end end
fields(sql) { |nil| ... }
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 81 def fields(sql) yield nil end
inspect()
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 101 def inspect "jmysql(#{@dbase})" end
qrow(sql,with_table=false)
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 85 def qrow(sql,with_table=false) row=fetch_hash(query(sql),with_table).first return row end
query(sql)
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 25 def query(sql) return nil if sql.nil? or sql.length ==0 begin stmt = @conn.createStatement res = stmt.executeQuery(sql) rescue SQLException => err # case err # when 2006, 2013 # einfo("connection dropped: retrying") # reconnect # retry # when 1062 #duplicate # res=-1 # else eerror("#{err} in\n#{sql}") raise "#{err}\n#{sql}\n" # end rescue CommunicationsException => e edebug("comm error") eerror("#{e} in\n#{sql}") raise "#{e}\n#{sql}\n" rescue =>e edebug("other error: #{e.class.name}") eerror("#{err} in\n#{sql}") end return res end
rows(sql,with_table=false)
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 90 def rows(sql,with_table=false) if ret=query(sql) fetch_hash(ret,with_table) end end
to_s()
click to toggle source
# File lib/DrbDB/MyMultiSQL/jdbc.rb, line 104 def to_s inspect end