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}"); } }