/// <summary>
        /// Retrieves a column as an array of chars (blob)
        /// </summary>
        /// <param name="i">The index of the column to retrieve</param>
        /// <param name="fieldoffset">The zero-based index of where to begin reading the data</param>
        /// <param name="buffer">The buffer to write the characters into</param>
        /// <param name="bufferoffset">The zero-based index of where to begin writing into the array</param>
        /// <param name="length">The number of bytes to retrieve</param>
        /// <returns>The actual number of characters written into the array</returns>
        /// <remarks>
        /// To determine the number of characters in the column, pass a null value for the buffer.  The total length will be returned.
        /// </remarks>
        public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length)
        {
            if (i >= VisibleFieldCount && _keyInfo != null)
            {
                return(_keyInfo.GetChars(i - VisibleFieldCount, fieldoffset, buffer, bufferoffset, length));
            }

            VerifyType(i, DbType.String);
            return(_activeStatement._sql.GetChars(_activeStatement, i, (int)fieldoffset, buffer, bufferoffset, length));
        }