public int ProcessEmbedJoins(Action <EmbedJoin> actProcess, long from_inx = 0)
        {
            int cnt = 0;
            var sql = string.Format(
                "SELECT {1}, {2}, {3} FROM {0} WHERE {1} >= ${1}",
                EmbedJoin.TblName, EmbedJoin.FldnInx, EmbedJoin.FldnVect, EmbedJoin.FldnFreq);
            var cmd = CreateCmd(sql);

            cmd.Parameters.AddWithValue(EmbedJoin.FldnInx, from_inx);
            var rd = cmd.ExecuteReader();

            while (rd.Read())
            {
                if (rd.GetValue(1) is DBNull)
                {
                    throw new InvalidOperationException("Empty Vector in EmbedJoin");
                }
                var ej = new EmbedJoin
                {
                    Inx  = rd.GetInt64(0),
                    Vect = (byte[])rd.GetValue(1),
                    Freq = rd.GetInt64(2)
                };
                actProcess(ej);
                cnt++;
            }
            return(cnt);
        }
 public void StoreDictItem(EmbedJoin itm)
 {
     CmdDictInsert.Parameters[ProcessItem.FldnDictInx].Value     = itm.Inx;
     CmdDictInsert.Parameters[ProcessItem.FldnDictVectStr].Value = itm.GetVectStr();
     if (CmdDictInsert.ExecuteNonQuery() != 1)
     {
         throw new InvalidOperationException($"StoreDictItem failed: {itm}");
     }
 }