# File sql-serialize.rb, line 411 def sql_insert_array (dbi) instance_variables.each { |var| val = instance_eval(var) if (val.kind_of? Array) val.each_index { |index| assoc_id = nil if (val[index].respond_to? :insert) # insert but don't start a new transaction assoc_id = val[index].instance_eval("sql_exist_in_db?(ObjectSpace._id2ref(" + dbi.id.to_s + "))") unless assoc_id assoc_id = val[index].insert(dbi, false) end sql_increase_refcount (dbi, assoc_id) else # use method to insert basic data types such as strings # and numerics assoc_id = sql_basic_insert (dbi, val[index]) end sql = "INSERT INTO " + sql_quote_name(self.type.name.sub(/#<Module .*?>::/, "") + "_array") + " (" sql << sql_quote_name("sql_assoc_id") << ", " << sql_quote_name("arr_index") sql << ", " << sql_quote_name("val_id") sql << ", " << sql_quote_name("symbol") << ") VALUES (" sql << sql_assoc_id(dbi).to_s << ", " << index.to_s << ", " sql << assoc_id.to_s << ", " << sql_quote_str(var[1,var.length]) << ")" dbi.do_more (sql) } end } end