Class: ActiveRecord::ConnectionAdapters::IBM_DataServer

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/connection_adapters/ibm_db_adapter.rb

Overview

This class contains common code across DB’s (DB2 LUW, zOS, i5 and IDS)

Direct Known Subclasses

IBM_DB2, IBM_IDS

Instance Method Summary collapse

Constructor Details

#initialize(adapter) ⇒ IBM_DataServer

Returns a new instance of IBM_DataServer.



966
967
968
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 966

def initialize(adapter)
  @adapter = adapter
end

Instance Method Details

#change_column_default(table_name, column_name, default) ⇒ Object



1044
1045
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1044

def change_column_default(table_name, column_name, default)
end

#check_reserved_words(col_name) ⇒ Object



982
983
984
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 982

def check_reserved_words(col_name)
  col_name
end

#create_index_after_table(table_name) ⇒ Object



973
974
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 973

def create_index_after_table (table_name)
end

#execute(sql, name = nil) ⇒ Object



1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1014

def execute(sql, name = nil)
  begin
    if stmt = IBM_DB::exec(@adapter.connection, sql)
      stmt   # Return the statement object
    else
      raise StatementInvalid, IBM_DB::stmt_errormsg
    end
  rescue StandardError
    error_msg = IBM_DB::conn_errormsg ? IBM_DB::conn_errormsg : IBM_DB::stmt_errormsg
    if error_msg && !error_msg.empty?
      raise "Failed to execute statement due to error: #{error_msg}"
    else
      raise
    end
  end
end

#get_datetime_mappingObject



1038
1039
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1038

def get_datetime_mapping
end

#get_time_mappingObject



1041
1042
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1041

def get_time_mapping
end

#last_generated_id(stmt) ⇒ Object



970
971
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 970

def last_generated_id(stmt)
end

#query_offset_limit(sql, offset, limit) ⇒ Object



1035
1036
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1035

def query_offset_limit(sql, offset, limit)
end

#remove_column(table_name, column_name) ⇒ Object

This is supported by the DB2 for Linux, UNIX, Windows data servers and by the DB2 for i5 data servers



988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 988

def remove_column(table_name, column_name)
  begin
    @adapter.execute "ALTER TABLE #{table_name} DROP #{column_name}"
    reorg_table(table_name)
  rescue StandardError => exec_err
    # Provide details on the current XML columns support
    if exec_err.message.include?('SQLCODE=-1242') && exec_err.message.include?('42997')
      raise StatementInvalid, 
            "A column that is part of a table containing an XML column cannot be dropped. \
To remove the column, the table must be dropped and recreated without the #{column_name} column: #{exec_err}"
    else
      raise
    end
  end
end

#reorg_table(table_name) ⇒ Object



979
980
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 979

def reorg_table(table_name)
end

#select_all(sql, name, stmt, results) ⇒ Object



1004
1005
1006
1007
1008
1009
1010
1011
1012
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1004

def select_all(sql, name, stmt, results)
  # Fetches all the results available. IBM_DB::fetch_assoc(stmt) returns
  # an hash for each single record.
  # The loop stops when there aren't any more valid records to fetch
  while single_hash = IBM_DB::fetch_assoc(stmt)
    # Add the record to the +results+ array
    results <<  single_hash
  end
end

#set_binary_default(value) ⇒ Object



1047
1048
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1047

def set_binary_default(value)
end

#set_binary_valueObject



1050
1051
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1050

def set_binary_value
end

#set_case(value) ⇒ Object



1056
1057
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1056

def set_case(value)
end

#set_schema(schema) ⇒ Object



1031
1032
1033
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1031

def set_schema(schema)
  @adapter.execute("SET SCHEMA #{schema}")
end

#set_text_defaultObject



1053
1054
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 1053

def set_text_default
end

#setup_for_lob_tableObject



976
977
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 976

def setup_for_lob_table ()
end