Exemple #1
0
        protected override void Free(int option)
        {
            // Does	not	seem to	be possible	or necessary to	close
            // an execute procedure	statement.
            if (this.StatementType == DbStatementType.StoredProcedure &&
                option == IscCodes.DSQL_close)
            {
                return;
            }

            lock (this.db)
            {
                int[] statusVector = FesConnection.GetNewStatusVector();
                int   stmtHandle   = this.handle;

                FbClient.isc_dsql_free_statement(
                    statusVector,
                    ref stmtHandle,
                    (short)option);

                this.handle = stmtHandle;

                // Reset statement information
                if (option == IscCodes.DSQL_drop)
                {
                    this.parameters = null;
                    this.fields     = null;
                }

                this.Clear();
                this.allRowsFetched = false;

                this.db.ParseStatusVector(statusVector);
            }
        }