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