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); } }