/// <summary> /// Set an array of simple filters for <see cref="Api.JetMove(JET_SESID,JET_TABLEID,int,MoveGrbit)"/> /// </summary> /// <param name="sesid">The session to use for the call.</param> /// <param name="tableid">The cursor to position.</param> /// <param name="filters">Simple record filters.</param> /// <param name="grbit">Move options.</param> /// <returns>An error if the call fails.</returns> public int JetSetCursorFilter(JET_SESID sesid, JET_TABLEID tableid, JET_INDEX_COLUMN[] filters, CursorFilterGrbit grbit) { TraceFunctionCall("JetSetCursorFilter"); this.CheckSupportsWindows8Features("JetSetCursorFilter"); if (filters == null || filters.Length == 0) { return Err(NativeMethods.JetSetCursorFilter(sesid.Value, tableid.Value, null, 0, checked((uint)grbit))); } var handles = new GCHandleCollection(); try { NATIVE_INDEX_COLUMN[] nativeFilters = new NATIVE_INDEX_COLUMN[filters.Length]; for (int i = 0; i < filters.Length; i++) { nativeFilters[i] = filters[i].GetNativeIndexColumn(ref handles); } return Err(NativeMethods.JetSetCursorFilter(sesid.Value, tableid.Value, nativeFilters, (uint)filters.Length, checked((uint)grbit))); } finally { handles.Dispose(); } }
/// <summary> /// Set an array of simple filters for <see cref="Api.JetMove(JET_SESID,JET_TABLEID,int,MoveGrbit)"/>. /// </summary> /// <param name="sesid">The session to use for the call.</param> /// <param name="tableid">The cursor to position.</param> /// <param name="filters">Simple record filters.</param> /// <param name="grbit">Move options.</param> public static void JetSetCursorFilter(JET_SESID sesid, JET_TABLEID tableid, JET_INDEX_COLUMN[] filters, CursorFilterGrbit grbit) { Api.Check(Api.Impl.JetSetCursorFilter(sesid, tableid, filters, grbit)); }