Example #1
0
    public override void Detach()
    {
        if (TransactionCount > 0)
        {
            throw IscException.ForErrorCodeIntParam(IscCodes.isc_open_trans, TransactionCount);
        }

        if (!_handle.IsInvalid)
        {
            ClearStatusVector();

            _fbClient.isc_detach_database(_statusVector, ref _handle);

            ProcessStatusVector(_statusVector);

            _handle.Dispose();
        }

        WarningMessage   = null;
        Charset          = null;
        ServerVersion    = null;
        _statusVector    = null;
        TransactionCount = 0;
        Dialect          = 0;
        PacketSize       = 0;
    }
Example #2
0
        public Task Detach(AsyncWrappingCommonArgs async)
        {
            if (TransactionCount > 0)
            {
                throw IscException.ForErrorCodeIntParam(IscCodes.isc_open_trans, TransactionCount);
            }

            if (!_handle.IsInvalid)
            {
                ClearStatusVector();

                _fbClient.isc_detach_database(_statusVector, ref _handle);

                ProcessStatusVector(_statusVector);

                _handle.Dispose();
            }

            _warningMessage   = null;
            _charset          = null;
            _serverVersion    = null;
            _statusVector     = null;
            _transactionCount = 0;
            _dialect          = 0;
            _packetSize       = 0;

            return(Task.CompletedTask);
        }
Example #3
0
        public void Detach()
        {
            if (TransactionCount > 0)
            {
                throw IscException.ForErrorCodeIntParam(IscCodes.isc_open_trans, TransactionCount);
            }

            ClearStatusVector();

            _fbClient.isc_detach_database(_statusVector, ref _handle);

            ProcessStatusVector(_statusVector);
        }
        public void Detach()
        {
            lock (this)
            {
                if (TransactionCount > 0)
                {
                    throw new IscException(IscCodes.isc_open_trans, TransactionCount);
                }

                int dbHandle = Handle;

                // Clear status vector
                ClearStatusVector();

                _fbClient.isc_detach_database(_statusVector, ref dbHandle);

                _handle = dbHandle;

                FesConnection.ParseStatusVector(_statusVector, _charset);
            }
        }
        public void Detach()
        {
            lock (this)
            {
                if (this.TransactionCount > 0)
                {
                    throw new IscException(IscCodes.isc_open_trans, this.TransactionCount);
                }

                int dbHandle = this.Handle;

                // Clear status vector
                this.ClearStatusVector();

                fbClient.isc_detach_database(this.statusVector, ref dbHandle);

                this.handle = dbHandle;

                FesConnection.ParseStatusVector(this.statusVector, this.charset);
            }
        }