public override TextReader OpenReader()
{
lock (this)
{
if (_needRestart && _initialPosition < 0L)
{
throw new Exception("The underlying TextReader cannot be reset. It has already been opened.");
}
if (_alreadyOpen)
{
throw new Exception("There's already a reader open on this Clob. Close the first reader before requesting a new one.");
}
if (_needRestart)
{
((StreamReader) _reader).BaseStream.Seek(_initialPosition, SeekOrigin.Begin);
}
_alreadyOpen = true;
}
return new ClobReader(this);
}