[firebase-br] Acho que é Off Topic - Firebird .Net Provider

João Dias de Carvalho Neto jdias.bjsoftware em gmail.com
Sex Dez 19 18:51:33 -03 2008


Salve Galera! :-D

Estou tentando aprender C# e não poderia deixar de usar "O banco de dados"
Firebird! :-D

Baixei o provider e instalei em duas máquinas, uma com VS 2008 Team System e
outra com Visual C# 2008 Express Edition

Bom o fato é o seguinte estava tentando escrever um DAO da vida com Stored
Procedures mas quando executo o código recebo
uma exceção louca que nem mapeada está, só tenho o code dela! :-}

Bom gostaria de que se fosse possível alguma santa alma me ajudar, por que
de fato eu é que devo estar fazendo alguma merda

O código está postado abaixo e logo em seguida a exceção

/***CLASSES AUXILIARES***/

    public class ConexaoFB
    {
        #region Privates
            /// <summary>
            /// Atributo privado para estabelecer a conexão
            /// </summary>
            private FbConnection conexao;
        #endregion

        #region Publics
        /// <summary>
        /// Método publico usado para estabelecer a conexão com o banco de
dados
        /// Por Default o Pooling é utilizado
        /// </summary>
        public void AbrirConexao(string sconexao)
        {
            conexao = new FbConnection(sconexao);
            try
            {
                conexao.Open();
            }
            catch
            {
                throw new Exception("Impossível conectar com Firebird!");
            }
        }

        /// <summary>
        /// Método publico para fechar uma conexão. Por default o Pooling é
utilizado
        /// </summary>
        public void FecharConexao()
        {
            conexao.Close();
        }

        public FbConnection ObterConexao()
        {
            return conexao;
        }
        #endregion

    }
}

    public static class StrConn
    {

        public static StringBuilder MontarStringConexao()
        {

            var str = new StringBuilder();

            str.Append("DataSource=" +
               Morpheus.Properties.Settings.Default.Server.ToString() +
";");
            str.Append("Database=" +
               Morpheus.Properties.Settings.Default.Database.ToString() +
";");
            str.Append("User=SYSDBA;");
            str.Append("Password=masterkey;");
            str.Append("Dialect=" +
               Morpheus.Properties.Settings.Default.Dialect.ToString() +
";");
            str.Append("Charset=" +
               Morpheus.Properties.Settings.Default.Charset.ToString() +
";");

            return str;
        }


    }


    class AcessorioDAO
    {
        public bool PersistirAlteracoes(Acessorio ace)
        {
            var con = new ConexaoFB();
            con.AbrirConexao(StrConn.MontarStringConexao().ToString());
            var cmd = new FbCommand("SP_DAO_ACESSORIOS",con.ObterConexao());
            cmd.Connection = con.ObterConexao();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@P_CODIGO", ace.Codigo);
            cmd.Parameters.Add("@P_DESCRICAO", ace.Descricao);
            try
            {
                cmd.ExecuteNonQuery();  //Acho que a merda acontece aqui
porque ele passa debugando pela conexão
                return true;
            }
            catch (FbException e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                cmd.Connection.Close();
            }
        }

    }

Exceptions: No message for error code 335544569 found.
No message for error code 335544512 found




Obrigado pela paciência!



João Dias de Carvalho Neto
jdias.bjsoftware em gmail.com



Mais detalhes sobre a lista de discussão lista