コード例 #1
0
        /// <include file='Doc/en_EN/FbConfiguration.xml' path='doc/class[@name="FbConfiguration"]/method[@name="DatabaseShutdown(FbShutdownMode,System.Int32)"]/*'/>
        public void DatabaseShutdown(FbShutdownMode mode, int seconds)
        {
            // Configure Spb
            this.StartSpb = this.CreateParameterBuffer();

            this.StartSpb.Append(IscCodes.isc_action_svc_properties);
            this.StartSpb.Append(IscCodes.isc_spb_dbname, this.Database);

            switch (mode)
            {
            case FbShutdownMode.Forced:
                this.StartSpb.Append(IscCodes.isc_spb_prp_shutdown_db, seconds);
                break;

            case FbShutdownMode.DenyTransaction:
                this.StartSpb.Append(
                    IscCodes.isc_spb_prp_deny_new_transactions, seconds);
                break;

            case FbShutdownMode.DenyConnection:
                this.StartSpb.Append(
                    IscCodes.isc_spb_prp_deny_new_attachments, seconds);
                break;
            }

            // Start execution
            this.StartTask();

            this.Close();
        }
コード例 #2
0
    public async Task DatabaseShutdownAsync(FbShutdownMode mode, int seconds, CancellationToken cancellationToken = default)
    {
        EnsureDatabase();

        await OpenAsync(cancellationToken).ConfigureAwait(false);

        var startSpb = new ServiceParameterBuffer2();

        startSpb.Append(IscCodes.isc_action_svc_properties);
        startSpb.Append2(IscCodes.isc_spb_dbname, Database, SpbFilenameEncoding);
        switch (mode)
        {
        case FbShutdownMode.Forced:
            startSpb.Append(IscCodes.isc_spb_prp_shutdown_db, seconds);
            break;

        case FbShutdownMode.DenyTransaction:
            startSpb.Append(IscCodes.isc_spb_prp_deny_new_transactions, seconds);
            break;

        case FbShutdownMode.DenyConnection:
            startSpb.Append(IscCodes.isc_spb_prp_deny_new_attachments, seconds);
            break;
        }
        await StartTaskAsync(startSpb, cancellationToken).ConfigureAwait(false);
        await CloseAsync(cancellationToken).ConfigureAwait(false);
    }
コード例 #3
0
        public void DatabaseShutdown(FbShutdownMode mode, int seconds)
        {
            // Configure Spb
            this.StartSpb = new ServiceParameterBuffer();

            this.StartSpb.Append(IscCodes.isc_action_svc_properties);
            this.StartSpb.Append(IscCodes.isc_spb_dbname, this.Database);

            switch (mode)
            {
                case FbShutdownMode.Forced:
                    this.StartSpb.Append(IscCodes.isc_spb_prp_shutdown_db, seconds);
                    break;

                case FbShutdownMode.DenyTransaction:
                    this.StartSpb.Append(IscCodes.isc_spb_prp_deny_new_transactions, seconds);
                    break;

                case FbShutdownMode.DenyConnection:
                    this.StartSpb.Append(IscCodes.isc_spb_prp_deny_new_attachments, seconds);
                    break;
            }

            // Start execution
            this.StartTask();

            this.Close();
        }
コード例 #4
0
    public void DatabaseShutdown(FbShutdownMode mode, int seconds)
    {
        EnsureDatabase();

        Open();
        var startSpb = new ServiceParameterBuffer2();

        startSpb.Append(IscCodes.isc_action_svc_properties);
        startSpb.Append2(IscCodes.isc_spb_dbname, Database, SpbFilenameEncoding);
        switch (mode)
        {
        case FbShutdownMode.Forced:
            startSpb.Append(IscCodes.isc_spb_prp_shutdown_db, seconds);
            break;

        case FbShutdownMode.DenyTransaction:
            startSpb.Append(IscCodes.isc_spb_prp_deny_new_transactions, seconds);
            break;

        case FbShutdownMode.DenyConnection:
            startSpb.Append(IscCodes.isc_spb_prp_deny_new_attachments, seconds);
            break;
        }
        StartTask(startSpb);
        Close();
    }
コード例 #5
0
        private async Task DatabaseShutdownImpl(FbShutdownMode mode, int seconds, AsyncWrappingCommonArgs async)
        {
            EnsureDatabase();

            await Open(async).ConfigureAwait(false);

            var startSpb = new ServiceParameterBuffer();

            startSpb.Append(IscCodes.isc_action_svc_properties);
            startSpb.Append(IscCodes.isc_spb_dbname, Database, SpbFilenameEncoding);
            switch (mode)
            {
            case FbShutdownMode.Forced:
                startSpb.Append(IscCodes.isc_spb_prp_shutdown_db, seconds);
                break;

            case FbShutdownMode.DenyTransaction:
                startSpb.Append(IscCodes.isc_spb_prp_deny_new_transactions, seconds);
                break;

            case FbShutdownMode.DenyConnection:
                startSpb.Append(IscCodes.isc_spb_prp_deny_new_attachments, seconds);
                break;
            }
            await StartTask(startSpb, async).ConfigureAwait(false);
            await Close(async).ConfigureAwait(false);
        }
コード例 #6
0
        public void DatabaseShutdown(FbShutdownMode mode, int seconds)
        {
            StartSpb = new ServiceParameterBuffer();

            StartSpb.Append(IscCodes.isc_action_svc_properties);
            StartSpb.Append(IscCodes.isc_spb_dbname, Database);

            switch (mode)
            {
            case FbShutdownMode.Forced:
                StartSpb.Append(IscCodes.isc_spb_prp_shutdown_db, seconds);
                break;

            case FbShutdownMode.DenyTransaction:
                StartSpb.Append(IscCodes.isc_spb_prp_deny_new_transactions, seconds);
                break;

            case FbShutdownMode.DenyConnection:
                StartSpb.Append(IscCodes.isc_spb_prp_deny_new_attachments, seconds);
                break;
            }

            Open();

            StartTask();

            Close();
        }
コード例 #7
0
 public Task DatabaseShutdownAsync(FbShutdownMode mode, int seconds, CancellationToken cancellationToken = default) => DatabaseShutdownImpl(mode, seconds, new AsyncWrappingCommonArgs(true, cancellationToken));
コード例 #8
0
 public void DatabaseShutdown(FbShutdownMode mode, int seconds) => DatabaseShutdownImpl(mode, seconds, new AsyncWrappingCommonArgs(false)).GetAwaiter().GetResult();