public void Exec_qry_bgn(Rndm_qry_itm qry_itm) { this.qry_itm = qry_itm; qry_idx = qry_tbl.Select_by_key(qry_itm.Qry_key()); if (qry_idx == -1) qry_idx = ++qry_idx_max; else { // delete all qry_tbl.Delete_by_qry_idx(qry_idx); rng_tbl.Delete_by_qry_idx(qry_idx); seq_tbl.Delete_by_qry_idx(qry_idx); } rng_idx = seq_in_rng = seq_in_qry = 0; rng_stmt = rng_tbl.Insert_stmt(); seq_stmt = seq_tbl.Insert_stmt(); }
public void Split__trg__nth__rls(Split_ctx ctx, Db_conn trg_conn) { // make rndm_rng and add Rndm_rng_itm rng_itm = bldr.Exec_rng_end_or_null(); if (rng_itm == null) return; Rndm_rng_tbl rng_tbl = new Rndm_rng_tbl(trg_conn); rng_tbl.Create_tbl(); Db_stmt rng_stmt = rng_tbl.Insert_stmt(); rng_tbl.Insert( rng_stmt, rng_itm.Mgr_idx(), rng_itm.Rng_idx(), rng_itm.Seq_bgn(), rng_itm.Seq_end()); rng_stmt.Rls(); bldr.Conn().Txn_end(); // make rndm_seq and bulk copy Rndm_seq_tbl seq_tbl = new Rndm_seq_tbl(trg_conn); seq_tbl.Create_tbl(); Split_tbl_.Bld_insert_by_select(tmp_bfr, seq_tbl.Tbl_name(), seq_tbl.Flds()); tmp_bfr.Add_str_u8_fmt( "WHERE {0} = {1} AND {2} = {3}", seq_tbl.Fld__qry_idx(), bldr.Qry_idx(), seq_tbl.Fld__rng_idx(), bldr.Rng_idx()); attach_mgr.Conn_main_(trg_conn).Conn_links_(new Db_attach_itm("src_db", bldr.Conn())); attach_mgr.Exec_sql(tmp_bfr.To_str_and_clear()); // bldr.Conn().Txn_bgn("rndm"); }
public Rndm_rng_itm Exec_rng_end_or_null() { if (seq_in_rng == 0) return null; // no sequences added; return null; Rndm_rng_itm rv = new Rndm_rng_itm(qry_idx, rng_idx, rng_seq_bgn, seq_in_qry); rng_tbl.Insert(rng_stmt, qry_idx, rng_idx, rng_seq_bgn, seq_in_qry); return rv; }