protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (!_disposed)
         {
             _disposed = true;
             Release();
             _commandTimeout      = 0;
             _fetchSize           = 0;
             _implicitTransaction = false;
             _commandText         = null;
             _connection          = null;
             _transaction         = null;
             _parameters          = null;
             _statement           = null;
             _activeReader        = null;
             if (_namedParameters != null)
             {
                 _namedParameters.Clear();
                 _namedParameters = null;
             }
         }
     }
     base.Dispose(disposing);
 }
Example #2
0
        /// <summary>
        /// Deleta dados da tabela especificada
        /// </summary>
        /// <param name="tabela">Tabela para deletar os dados, NÃO PODE SER NULL</param>
        /// <param name="onde">Clausula WHERE sem o WHERE propriamente dito. Deve conter os parâmetros, tendo os nomes da coluna precedida por @, NÃO PODE SER NULL</param>
        /// <param name="colunaRetorno">Coluna da tabela que deve ter seu valor retornado ao fim da execução do comando</param>
        /// <param name="dados">FbCommand com os parâmetros contendo os dados a serem deletados na tabela, NÃO PODE SER NULL</param>
        /// <returns></returns>
        public int deletar(string tabela, string onde, string colunaRetorno, FbParameterCollection dados)
        {
            if ((tabela == null || tabela.Length == 0) || (onde == null || onde.Length == 0) || (colunaRetorno == null || colunaRetorno.Length == 0) || (dados == null || dados.Count == 0)) {
                return -1;
            }

            StringBuilder sql = new StringBuilder();

            sql.Append("DELETE FROM");
            sql.Append(tabela);
            sql.Append(" WHERE ");
            sql.Append(onde);
            sql.Append(" RETURNING ");
            sql.Append(colunaRetorno + ";");

            FbCommand comando = new FbCommand(sql.ToString(), conexao, conexao.BeginTransaction());

            int codigoRetorno = -1;
            try {
                codigoRetorno = Convert.ToInt32(comando.ExecuteScalar());
                comando.Transaction.Commit();
            } catch (Exception) {
                comando.Transaction.Rollback();
                return -1;
            } finally {
                comando.Dispose();
            }

            return codigoRetorno;
        }
Example #3
0
        protected override void Dispose(bool disposing)
        {
            lock (this)
            {
                if (!_disposed)
                {
                    try
                    {
                        // Release any unmanaged resources
                        Release();

                        if (disposing)
                        {
                            // release any managed resources
                            _commandTimeout      = 0;
                            _fetchSize           = 0;
                            _implicitTransaction = false;
                            _commandText         = null;
                            _connection          = null;
                            _transaction         = null;
                            _parameters          = null;
                            _statement           = null;
                            _activeReader        = null;

                            if (_namedParameters != null)
                            {
                                _namedParameters.Clear();
                                _namedParameters = null;
                            }
                        }
                    }
                    finally
                    {
                        _disposed = true;
                        base.Dispose(disposing);
                    }
                }
            }
        }
Example #4
0
        /// <summary>
        /// Atualiza uma linha da tabela especificada
        /// </summary>
        /// <param name="tabela">Tabela para atualizar os dados, NÃO PODE SER NULL</param>
        /// <param name="colunas">Colunas da tabela a serem usadas no comando UPDATE, NÃO PODE SER NULL</param>
        /// <param name="onde">Clausula WHERE sem o WHERE propriamente dito. Deve conter os parâmetros, tendo os nomes da coluna precedida por @, NÃO PODE SER NULL</param>
        /// <param name="dados">FbCommand com os parâmetros contendo os dados a serem atualizados na tabela, NÃO PODE SER NULL</param>
        /// <returns>inteiro com chave primária do registro atualizado</returns>
        public int atualizar(string tabela, string[] colunas, string onde, FbParameterCollection dados, string colunaRetorno)
        {
            if ((tabela == null || tabela.Length == 0) || (colunas == null || colunas.Length == 0) || (onde == null || onde.Length == 0) ||(dados == null || dados.Count == 0)) {
                return -1;
            }

            StringBuilder sql = new StringBuilder();
            int tamanho = colunas.Length;

            sql.Append("UPDATE ");
            sql.Append(tabela);
            sql.Append(" SET ");
            for (int i = 0; i < tamanho; i++) {
                sql.Append(i != (tamanho - 1) ? colunas[i] + " = @" + colunas[i] + ", " : colunas[i] + " = @" + colunas[i]);
            }
            sql.Append(" WHERE ");
            sql.Append(onde);
            sql.Append(" RETURNING ");
            sql.Append(colunaRetorno + ";");

            FbCommand comando = new FbCommand(sql.ToString(), conexao, conexao.BeginTransaction());
            foreach (FbParameter parametro in dados) {
                comando.Parameters.Add(parametro);
            }

            int codigoRetorno = -1;
            try {
                codigoRetorno = Convert.ToInt32(comando.ExecuteScalar());
                comando.Transaction.Commit();
            } catch (Exception) {
                comando.Transaction.Rollback();
                return -1;
            } finally {
                comando.Dispose();
            }

            return codigoRetorno;
        }
Example #5
0
        private async Task DisposeHelper(AsyncWrappingCommonArgs async)
        {
            if (!_disposed)
            {
                _disposed = true;
                await Release(async).ConfigureAwait(false);

                _commandTimeout      = 0;
                _fetchSize           = 0;
                _implicitTransaction = false;
                _commandText         = null;
                _connection          = null;
                _transaction         = null;
                _parameters          = null;
                _statement           = null;
                _activeReader        = null;
                if (_namedParameters != null)
                {
                    _namedParameters.Clear();
                    _namedParameters = null;
                }
            }
        }
        protected override void Dispose(bool disposing)
        {
            lock (this)
            {
                if (!this.disposed)
                {
                    try
                    {
                        // Release any unmanaged resources
                        this.Release();

                        // release any managed resources
                        this.commandTimeout      = 0;
                        this.fetchSize           = 0;
                        this.implicitTransaction = false;
                        this.commandText         = null;
                        this.connection          = null;
                        this.transaction         = null;
                        this.parameters          = null;
                        this.statement           = null;
                        this.activeReader        = null;

                        if (this.namedParameters != null)
                        {
                            this.namedParameters.Clear();
                            this.namedParameters = null;
                        }

                        this.disposed = true;
                    }
                    finally
                    {
                        base.Dispose(disposing);
                    }
                }
            }
        }
Example #7
0
        protected override void Dispose(bool disposing)
        {
            lock (this)
            {
                if (!this.disposed)
                {
                    try
                    {
                        // Release any unmanaged resources
                        this.Release();

                        // release any managed resources
                        this.commandTimeout = 0;
                        this.fetchSize = 0;
                        this.implicitTransaction = false;
                        this.commandText = null;
                        this.connection = null;
                        this.transaction = null;
                        this.parameters = null;
                        this.statement = null;
                        this.activeReader = null;

                        if (this.namedParameters != null)
                        {
                            this.namedParameters.Clear();
                            this.namedParameters = null;
                        }

                        this.disposed = true;
                    }
                    finally
                    {
                        base.Dispose(disposing);
                    }
                }
            }
        }
Example #8
0
        /// <summary>
        /// Seleciona dados da tabela especificada
        /// </summary>
        /// <param name="tabela">Tabela para selecionar os dados, NÃO PODE SER NULL</param>
        /// <param name="colunas">Colunas da tabela a serem usadas no comando SELECT, NÃO PODE SER NULL</param>
        /// <param name="como">Será associada a cada uma das colunas para montar o comando AS</param>
        /// <param name="onde">Clausula WHERE sem o WHERE propriamente dito</param>
        /// <returns>FbDataReader com os dados selecionados</returns>
        public FbDataReader selecionar(string tabela, string[] colunas, string[] como, string onde, FbParameterCollection dados)
        {
            if ((tabela == null || tabela.Length == 0) || (colunas == null || colunas.Length == 0)) {
                return null;
            }

            StringBuilder sql = new StringBuilder();
            int tamanho = colunas.Length;

            sql.Append("SELECT ");
            for (int i = 0; i < tamanho; i++) {
                sql.Append(colunas[i]);
                if (como != null) {
                    sql.Append(" AS ");
                    sql.Append("\"" + como[i] + "\"");
                }
                if (i != tamanho - 1) sql.Append(", ");
            }
            sql.Append(" FROM ");
            sql.Append(tabela);
            if (onde != null && onde.Length > 0) {
                sql.Append(" WHERE ");
                sql.Append(onde);
            }
            sql.Append(";");

            FbCommand comando = new FbCommand(sql.ToString(), conexao);
            if (dados != null) {
                foreach (FbParameter parametro in dados) {
                    comando.Parameters.Add(parametro);
                }
            }

            FbDataReader resultado = null;

            try {
                resultado = comando.ExecuteReader();
            } catch (Exception) {
                return null;
            }

            return resultado;
        }
		public void DNET532_CheckFlagForUsingOrdinalIgnoreCaseWithOuterChanges()
		{
			var collection = new FbParameterCollection();
			var parameter = new FbParameter() { ParameterName = "test" };
			collection.Add(parameter);
			var dummy1 = collection.IndexOf("dummy");
			Assert.IsFalse(collection.HasParameterWithNonAsciiName);
			parameter.ParameterName = "řčšřčšřčš";
			var dummy2 = collection.IndexOf("dummy");
			Assert.IsTrue(parameter.IsUnicodeParameterName);
			Assert.IsTrue(collection.HasParameterWithNonAsciiName);
		}
		public void DNET635_ResetsParentOnClear()
		{
			var collection = new FbParameterCollection();
			var parameter = collection.Add("test", 0);
			Assert.IsNotNull(parameter.Parent);
			collection.Clear();
			Assert.IsNull(parameter.Parent);
		}
		public void CheckFbParameterParentPropertyInvariant()
		{
			var collection = new FbParameterCollection();
			var parameter = collection.Add("Name", FbDbType.Array);
			Assert.AreEqual(collection, parameter.Parent);
			Assert.Throws<ArgumentException>(() => collection.Add(parameter));
			Assert.Throws<ArgumentException>(() => collection.AddRange(new FbParameter[] { parameter }));

			collection.Remove(parameter);
			Assert.IsNull(parameter.Parent);

			Assert.Throws<ArgumentException>(() => collection.Remove(parameter));

			collection.Insert(0, parameter);
			Assert.AreEqual(collection, parameter.Parent);
			Assert.Throws<ArgumentException>(() => collection.Insert(0, parameter));
		}
		protected override void Dispose(bool disposing)
		{
			lock (this)
			{
				if (!_disposed)
				{
					try
					{
						// Release any unmanaged resources
						Release();

						// release any managed resources
						_commandTimeout = 0;
						_fetchSize = 0;
						_implicitTransaction = false;
						_commandText = null;
						_connection = null;
						_transaction = null;
						_parameters = null;
						_statement = null;
						_activeReader = null;

						if (_namedParameters != null)
						{
							_namedParameters.Clear();
							_namedParameters = null;
						}

						_disposed = true;
					}
					finally
					{
						base.Dispose(disposing);
					}
				}
			}
		}