/////////////////////////////////////////////////////////////////////// /// <summary> /// See the <see cref="ISQLiteManagedModule.Column" /> method. /// </summary> /// <param name="cursor"> /// See the <see cref="ISQLiteManagedModule.Column" /> method. /// </param> /// <param name="context"> /// See the <see cref="ISQLiteManagedModule.Column" /> method. /// </param> /// <param name="index"> /// See the <see cref="ISQLiteManagedModule.Column" /> method. /// </param> /// <returns> /// See the <see cref="ISQLiteManagedModule.Column" /> method. /// </returns> public override SQLiteErrorCode Column( SQLiteVirtualTableCursor cursor, SQLiteContext context, int index ) { CheckDisposed(); SQLiteVirtualTableCursorEnumerator <T> enumeratorCursor = cursor as SQLiteVirtualTableCursorEnumerator <T>; if (enumeratorCursor == null) { return(CursorTypeMismatchError(cursor, typeof(SQLiteVirtualTableCursorEnumerator))); } if (enumeratorCursor.EndOfEnumerator) { return(CursorEndOfEnumeratorError(cursor)); } T current = ((IEnumerator <T>)enumeratorCursor).Current; if (current != null) { context.SetString(GetStringFromObject(cursor, current)); } else { context.SetNull(); } return(SQLiteErrorCode.Ok); }
/////////////////////////////////////////////////////////////////////// #region ISQLiteManagedModule Members /// <summary> /// See the <see cref="ISQLiteManagedModule.Open" /> method. /// </summary> /// <param name="table"> /// See the <see cref="ISQLiteManagedModule.Open" /> method. /// </param> /// <param name="cursor"> /// See the <see cref="ISQLiteManagedModule.Open" /> method. /// </param> /// <returns> /// See the <see cref="ISQLiteManagedModule.Open" /> method. /// </returns> public override SQLiteErrorCode Open( SQLiteVirtualTable table, ref SQLiteVirtualTableCursor cursor ) { CheckDisposed(); cursor = new SQLiteVirtualTableCursorEnumerator <T>( table, enumerable.GetEnumerator()); return(SQLiteErrorCode.Ok); }