public void Select_tasks_steps(
     Xobc_task_step_hash task_step_hash,
     Xobc_step_map_tbl step_map_tbl,
     byte[] wiki_abrv,
     String wiki_date) {
   task_step_hash.Clear();
   Db_rdr rdr =
       conn.Stmt_sql(
               String_.Concat_lines_nl_skip_last(
                   "SELECT  DISTINCT sm.task_id, sm.step_id",
                   "FROM    " + tbl_name + " imps",
                   "        JOIN " + step_map_tbl.Tbl_name() + " sm ON sm.step_id = imps.step_id",
                   "WHERE   imps.wiki_abrv = ?",
                   "AND     imps.wiki_date = ?"))
           .Crt_bry_as_str(fld_wiki_abrv, wiki_abrv)
           .Crt_str(fld_wiki_date, wiki_date)
           .Exec_select__rls_auto();
   try {
     while (rdr.Move_next()) {
       task_step_hash.Add(rdr.Read_int("task_id"), rdr.Read_int("step_id"));
     }
   } finally {
     rdr.Rls();
   }
 }
 private Xobc_import_step_itm New_itm(Db_rdr rdr) {
   return new Xobc_import_step_itm(
       rdr.Read_int(fld_step_id),
       rdr.Read_int(fld_host_id),
       rdr.Read_bry_by_str(fld_wiki_abrv),
       rdr.Read_str(fld_wiki_date),
       rdr.Read_str(fld_import_name),
       rdr.Read_int(fld_import_type),
       rdr.Read_byte(fld_import_zip),
       rdr.Read_long(fld_import_size_zip),
       rdr.Read_long(fld_import_size_raw),
       rdr.Read_str(fld_import_md5),
       rdr.Read_long(fld_prog_size_end),
       rdr.Read_int(fld_prog_count_end));
 }