private void DisposeDeadDataReader() { if (ConnectionState.Fetching == _cmdState) { if (null != _weakDataReaderReference && !_weakDataReaderReference.IsAlive) { if (_cmdWrapper != null) { _cmdWrapper.FreeKeyInfoStatementHandle(ODBC32.STMT.CLOSE); _cmdWrapper.FreeStatementHandle(ODBC32.STMT.CLOSE); } CloseFromDataReader(); } } }