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