예제 #1
0
        protected override bool ReleaseHandle()
        {
            if (IsClosed)
            {
                return(true);
            }

            IntPtr[]   statusVector = new IntPtr[IscCodes.ISC_STATUS_LENGTH];
            BlobHandle @ref         = this;

            FbClient.isc_close_blob(statusVector, ref @ref);
            handle = @ref.handle;
            var exception = FesConnection.ParseStatusVector(statusVector, Charset.DefaultCharset);

            return(exception == null || exception.IsWarning);
        }
예제 #2
0
    internal void ProcessStatusVector(IntPtr[] statusVector)
    {
        var ex = FesConnection.ParseStatusVector(statusVector, Charset);

        if (ex != null)
        {
            if (ex.IsWarning)
            {
                WarningMessage?.Invoke(ex);
            }
            else
            {
                throw ex;
            }
        }
    }
    protected override bool ReleaseHandle()
    {
        Contract.Requires(FbClient != null);

        if (IsClosed)
        {
            return(true);
        }

        var statusVector = new IntPtr[IscCodes.ISC_STATUS_LENGTH];
        var @ref         = this;

        FbClient.isc_rollback_transaction(statusVector, ref @ref);
        handle = @ref.handle;
        var exception = FesConnection.ParseStatusVector(statusVector, Charset.DefaultCharset);

        return(exception == null || exception.IsWarning);
    }
예제 #4
0
        protected override bool ReleaseHandle()
        {
            Contract.Requires(FbClient != null);

            if (IsClosed)
            {
                return(true);
            }

            IntPtr[]        statusVector = new IntPtr[IscCodes.ISC_STATUS_LENGTH];
            StatementHandle @ref         = this;

            FbClient.isc_dsql_free_statement(statusVector, ref @ref, IscCodes.DSQL_drop);
            handle = @ref.handle;

            var exception = FesConnection.ParseStatusVector(statusVector, Charset.DefaultCharset);

            return(exception == null || exception.IsWarning);
        }