public void Detach()
        {
            try
            {
                _database.XdrStream.Write(IscCodes.op_service_detach);
                _database.XdrStream.Write(Handle);
                _database.XdrStream.Write(IscCodes.op_disconnect);
                _database.XdrStream.Flush();

                _handle = 0;
            }
            catch (IOException ex)
            {
                throw IscException.ForErrorCode(IscCodes.isc_network_error, ex);
            }
            finally
            {
                try
                {
                    _connection.Disconnect();
                }
                catch (IOException ex)
                {
                    throw IscException.ForErrorCode(IscCodes.isc_network_error, ex);
                }
                finally
                {
                    _database   = null;
                    _connection = null;
                }
            }
        }
Exemple #2
0
        public override void Detach()
        {
            try
            {
                _database.Xdr.Write(IscCodes.op_service_detach);
                _database.Xdr.Write(Handle);
                _database.Xdr.Write(IscCodes.op_disconnect);
                _database.Xdr.Flush();

                Handle = 0;
            }
            catch (IOException ex)
            {
                throw IscException.ForIOException(ex);
            }
            finally
            {
                try
                {
                    _connection.Disconnect();
                }
                catch (IOException ex)
                {
                    throw IscException.ForIOException(ex);
                }
                finally
                {
                    _database   = null;
                    _connection = null;
                }
            }
        }
        public void Detach()
        {
            lock (this)
            {
                try
                {
                    _database.Write(IscCodes.op_service_detach);
                    _database.Write(Handle);
                    _database.Write(IscCodes.op_disconnect);
                    _database.Flush();

                    _handle = 0;
                }
                catch (IOException)
                {
                    throw new IscException(IscCodes.isc_network_error);
                }
                finally
                {
                    try
                    {
                        _connection.Disconnect();
                    }
                    catch (IOException)
                    {
                        throw new IscException(IscCodes.isc_network_error);
                    }
                    finally
                    {
                        _database   = null;
                        _connection = null;
                    }
                }
            }
        }
Exemple #4
0
        public virtual async Task Detach(AsyncWrappingCommonArgs async)
        {
            try
            {
                await _database.Xdr.Write(IscCodes.op_service_detach, async).ConfigureAwait(false);

                await _database.Xdr.Write(Handle, async).ConfigureAwait(false);

                await _database.Xdr.Write(IscCodes.op_disconnect, async).ConfigureAwait(false);

                await _database.Xdr.Flush(async).ConfigureAwait(false);

                _handle = 0;
            }
            catch (IOException ex)
            {
                throw IscException.ForErrorCode(IscCodes.isc_network_error, ex);
            }
            finally
            {
                try
                {
                    await _connection.Disconnect(async).ConfigureAwait(false);
                }
                catch (IOException ex)
                {
                    throw IscException.ForErrorCode(IscCodes.isc_network_error, ex);
                }
                finally
                {
                    _database   = null;
                    _connection = null;
                }
            }
        }
Exemple #5
0
 public void CloseConnection()
 {
     _connection.Disconnect();
 }
Exemple #6
0
 public Task CloseConnection(AsyncWrappingCommonArgs async)
 {
     return(_connection.Disconnect(async));
 }