class HMySql2

Public Class Methods

new(host, port, dbname, user, password, timezone) click to toggle source
Calls superclass method HDB::new
# File lib/hdb/hmysql2.rb, line 32
def initialize(host, port, dbname, user, password, timezone)

  super(host, port, dbname, user, password, timezone, "hmysql2")
  @result = nil

end

Public Instance Methods

_execute(queryStr = self.queryStr) click to toggle source
# File lib/hdb/hmysql2.rb, line 55
def _execute(queryStr = self.queryStr) 

  @result = @connection.query(queryStr)
  
  return self unless @result
  
  @resultTable = HFieldTable.new()
  self.fieldNameList().each { |fieldName| @resultTable.addFieldName(fieldName) }
  @resultTable.makeCaption()
  @result.each_with_index do |row, i|  
    row.each do |fieldName, fieldValue|
      @resultTable.setDataByFieldName(i, fieldName, fieldValue.to_s)
    end
  end

  return self

end
connect() click to toggle source
# File lib/hdb/hmysql2.rb, line 39
def connect()

  @connection = Mysql2::Client.new(host: @host, username: @user, password: @password, database: @dbname, port: @port.to_i)
  #hl << "Server version: #{self.execute("SHOW server_version").dataByFieldIndex(0,0).to_s}"
  self.execute("SET time_zone = '#{@timezone}'") if @timezone
  return @connection

end
disconnect() click to toggle source
# File lib/hdb/hmysql2.rb, line 48
def disconnect()

  @connection.close()
  @connection = nil

end
fieldNameList() click to toggle source
# File lib/hdb/hmysql2.rb, line 74
def fieldNameList()

  fieldList = HList.new()
  
  @result.fields.each { |fieldName| fieldList << fieldName }
  
  return fieldList

end
insert(tableName, values) click to toggle source
# File lib/hdb/hmysql2.rb, line 88
def insert(tableName, values)

  self.execute("INSERT INTO #{tableName} #{self.insertValues(values)}")
  return @connection.last_id

end
rowsAffected() click to toggle source
# File lib/hdb/hmysql2.rb, line 84
def rowsAffected
  return @connection.affected_rows()
end