/// <summary>Same as <see cref="filterFindBetween"/>, but the order is flipped, i.e. records are returned from end to start.</summary> public void filterFindBetweenInv(string indName, object[] valsStart, object[] valsEnd) { m_filter = new SearchFilterBetweenInv(cursor, indName, valsStart, valsEnd); }
/// <summary>Filter the recordset only including the records listed on the specified index, /// where the indexed columns values are the same as the supplied arguments. /// The last supplied argument however is threated like it contains the wildcard at the end.</summary> /// <param name="indName">Name of the index, as supplied to the <see cref="Attributes.EseIndexAttribute">[EseIndex]</see> attribute constructor.</param> /// <param name="vals">Values of the indexed columns, in the same order they go in the index.</param> /// <remarks> /// <para><b>NB:</b> this filter doesn't support bookmarks-based navigation, /// so the <see cref="tryGotoBookmark" /> will throw.</para> /// <para>This function does not immediately affect the cursor; /// instead, it changes the result of e.g. /// <see cref="applyFilter"/>, <see cref="all"/>, and <see cref="getFirst"/> methods.</para> /// </remarks> public void filterFindSubstring(string indName, params object[] vals) { m_filter = new SearchFilterSubstring(cursor, indName, vals); }
/// <summary>Set the sort order to the specified index, and optionally reverse the records.</summary> /// <param name="indName">Name of the index, as supplied to the <see cref="Attributes.EseIndexAttribute">[EseIndex]</see> attribute constructor.</param> /// <param name="bReverseOrder">set to true to make the recordset to return the results in the reversed order, i.e. from last record to the first record.</param> /// <remarks> /// <para>For example, if you have a <see cref="Attributes.EseTableAttribute">table</see> with 2 integer columns "c1" and "c2", /// the table has an <see cref="Attributes.EseIndexAttribute">index</see> "ind" saying "+c1\0+c2\0\0", /// then calling /// <code> /// rs.filterSort( "ind", false ); /// return rs.all(); /// </code> /// will return the same sequence of records as /// <code> /// rs.filterClear(); /// return rs.all().OrderBy( r => r.c1 ).ThenBy( r => r.c2 ); /// </code> /// </para> /// <para>This function does not immediately affect the cursor; /// instead, it changes the result of e.g. /// <see cref="applyFilter"/>, <see cref="all"/>, and <see cref="getFirst"/> methods.</para> /// </remarks> public void filterSort(string indName, bool bReverseOrder) { m_filter = new FilterAllRecords(cursor, indName); m_filter.bInverse = bReverseOrder; }
/// <summary>Include the records, /// where the indexed columns values are exactly the same as the supplied arguments. The output is reversed.</summary> /// <param name="indName">Name of the index, as supplied to the <see cref="Attributes.EseIndexAttribute">[EseIndex]</see> attribute constructor.</param> /// <param name="vals">Values of the indexed columns, in the same order they go in the index.</param> /// <remarks> /// <para><b>NB:</b> this filter doesn't support bookmarks-based navigation, /// so the <see cref="tryGotoBookmark" /> will throw.</para> /// <para>This function does not immediately affect the cursor; /// instead, it changes the result of e.g. /// <see cref="applyFilter"/>, <see cref="all"/>, and <see cref="getFirst"/> methods.</para> /// </remarks> public void filterFindEqualInv(string indName, params object[] vals) { m_filter = new SearchFilterEqualInv(cursor, indName, vals); }
/// <summary>Clear any filter, i.e. set the sort order to the non-reversed primary index, /// and cancel navigation limitations.</summary> /// <remarks>This function does not immediately affect the cursor; /// instead, it changes the result of e.g. /// <see cref="applyFilter"/>, <see cref="all"/>, and <see cref="getFirst"/> methods.</remarks> public void filterClear() { m_filter = new FilterAllRecords(cursor); }