# File sql-serialize.rb, line 225 def sql_assoc_id (dbi) # if it is already defined, just return it if (defined? @sql_assoc_id) if (!@sql_assoc_id.nil?) return @sql_assoc_id end end # see if it is in the database pk = self.instance_eval("@" << @sql_primary_key.id2name) sql = "SELECT " << sql_quote_name("sql_assoc_id") sql << " FROM " << sql_quote_name(self.type.name.sub(/#<Module .*?>::/, "")) << " WHERE " sql << sql_quote_name(@sql_primary_key.id2name) << " = " if (pk.kind_of? Numeric) sql << pk.to_s else sql << sql_quote_str(pk.to_s) end dbi.select_all (sql) { |row| @sql_assoc_id = row["sql_assoc_id"] } # if it wasn't in the database, fetch a new one if (@sql_assoc_id.nil?) @sql_assoc_id = sql_fetch_next_id (dbi) end return @sql_assoc_id end