Ejemplo n.º 1
0
        /// <summary>
        /// Completes the import process and signals to the database to write everything.
        /// </summary>
        public void Close()
        {
            if (_isDisposed)
            {
                return;
            }

            if (_column != -1 && _column != NumColumns)
            {
                throw new InvalidOperationException("Can't close writer, a row is still in progress, end it first");
            }
            WriteTrailer();

            _connector.SendSingleMessage(CopyDoneMessage.Instance);
            _connector.ReadExpecting <CommandCompleteMessage>();
            _connector.ReadExpecting <ReadyForQueryMessage>();

            _connector.State = ConnectorState.Ready;

            _connector  = null;
            _registry   = null;
            _buf        = null;
            _isDisposed = true;
        }
Ejemplo n.º 2
0
        public void Dispose()
        {
            if (_isDisposed)
            {
                return;
            }

            if (!_isConsumed)
            {
                // Finish the current CopyData message
                _buf.Skip(_leftToReadInDataMsg);
                // Read to the end
                _connector.SkipUntil(BackendMessageCode.CopyDone);
                _connector.ReadExpecting <CommandCompleteMessage>();
                _connector.ReadExpecting <ReadyForQueryMessage>();
            }

            _connector.State = ConnectorState.Ready;

            _connector  = null;
            _registry   = null;
            _buf        = null;
            _isDisposed = true;
        }
Ejemplo n.º 3
0
        internal void ResolveHandler(TypeHandlerRegistry registry)
        {
            if (Handler != null)
            {
                return;
            }

            if (_npgsqlDbType.HasValue)
            {
                Handler = registry[_npgsqlDbType.Value, EnumType];
            }
            else if (_dbType.HasValue)
            {
                Handler = registry[_dbType.Value];
            }
            else if (_value != null)
            {
                Handler = registry[_value];
            }
            else
            {
                throw new InvalidOperationException(string.Format("Parameter '{0}' must have its value set", ParameterName));
            }
        }
Ejemplo n.º 4
0
        internal void ResolveHandler(TypeHandlerRegistry registry)
        {
            if (Handler != null)
            {
                return;
            }

            if (_npgsqlDbType.HasValue)
            {
                Handler = registry[_npgsqlDbType.Value, EnumType];
            }
            else if (_dbType.HasValue)
            {
                Handler = registry[_dbType.Value];
            }
            else if (_value != null)
            {
                Handler = registry[_value];
            }
            else
            {
                Handler = registry[NpgsqlDbType.Text];
            }
        }
Ejemplo n.º 5
0
        internal void ResolveHandler(TypeHandlerRegistry registry)
        {
            if (Handler != null)
            {
                return;
            }

            if (_npgsqlDbType.HasValue)
            {
                Handler = registry[_npgsqlDbType.Value, EnumType];
            }
            else if (_dbType.HasValue)
            {
                Handler = registry[_dbType.Value];
            }
            else if (!IsNull)
            {
                Handler = registry[_value];
            }
            else
            {
                Handler = registry.UnrecognizedTypeHandler;
            }
        }
Ejemplo n.º 6
0
        internal void ResolveHandler(TypeHandlerRegistry registry)
        {
            if (Handler != null)
            {
                return;
            }

            if (_npgsqlDbType.HasValue)
            {
                Handler = registry[_npgsqlDbType.Value, SpecificType];
            }
            else if (_dbType.HasValue)
            {
                Handler = registry[_dbType.Value];
            }
            else if (_value != null)
            {
                Handler = registry[_value];
            }
            else
            {
                throw new InvalidOperationException($"Parameter '{ParameterName}' must have its value set");
            }
        }