none
Problemas insert update caracteres especiais .netprovider firebird RRS feed

  • Pergunta

  • Pessoal, Estou com um problema ao tentar inserir ou atualizar campos do tipo varchar que precisam de manter a acentução, o Charset já está configurado para WIN1251 na connection string também, se eu fizer a inserção diretamente pelo SQL manager for Interbase/Firebird a acentuação é mantida mas quando eu monto um command e mando executar os acentos são removidos!!!!!
    quarta-feira, 4 de agosto de 2010 14:36

Todas as Respostas

  • Ola Vinicius,

    Eu estou trabalhando com o firebird no VS2008, nao tentei nada com acentuaçao, vc poderia mostrar como vc esta fazendo o command

    quinta-feira, 5 de agosto de 2010 22:11
  • Segue abaixo os 3 métodos que eu uso para executar um comando no banco um monta o comando, o outro pega a conexão e o outro executa, só completando eu resolvi o problema mudando o charset para UTF8, mas não identifiquei o motivo para o mesmo!

     public bool ExecuteCMDLivre(FbCommand Cmd)
            {

                FbConnection Conn = new FbConnection();          
                Conn = GetConnection();
                try
                {
                    Conn.Open();
                    Cmd.Connection = Conn;
                    Cmd.ExecuteNonQuery();
                 
                    return true;
                }
                catch (FbException e)
                {                                              
                  
                    return false;
                }
                finally { Conn.Close(); }
            }

    public FbConnection GetConnection()
            {
              
                    dbSet Setting = new dbSet();
                    FbConnection Conn = new FbConnection(Setting.ConnectionString);
                   
                    return Conn;
               
               
            }

    public int dbWriteUsuarios(int ID_OPERADORES, string NOME, string INSCRICAO, char TIPO_INSCRICAO, string USERNAME, string PASSWORD, string TEMPLATE, string EXCECAO, byte[] FOTO, int ID_SITUACOES, int ID_SISTEMAS, char DESENVOLVEDOR, int ID_GRUPOS_OPERADORES,int ID_USUARIOS)
            {
                FbCommand cmd;
                StringBuilder SqlCmd;

                if (ID_OPERADORES == 0)
                {
                    ID_OPERADORES = dbUtil.GetUltId("OPERADORES_TBL", "ID_OPERADORES");

                    SqlCmd = new StringBuilder("insert into OPERADORES_TBL(ID_OPERADORES, NOME, USUARIO, \"SENHA\", INSCRICAO,TIPO_INSCRICAO,TEMPLATE,EXCECAO,FOTO,ID_SITUACOES, DESENVOLVEDOR,ID_SISTEMAS,id_grupos_operadores,id_usuarios)");
                    SqlCmd.Append("values (@ID_OPERADORES, @NOME, @USERNAME, @PASSWORD, @INSCRICAO, @TIPO_INSCRICAO,@TEMPLATE,@EXCECAO,@FOTO,@ID_SITUACOES, @DESENVOLVEDOR,@ID_SISTEMAS,@id_grupos_operadores,@id_usuarios)");
                    dbCopiaPermissoesPerfil(ID_OPERADORES, ID_GRUPOS_OPERADORES);
                }
                else
                {
                    SqlCmd = new StringBuilder("update OPERADORES_TBL set NOME = @NOME, USUARIO = @USERNAME, \"SENHA\" = @PASSWORD, INSCRICAO = @INSCRICAO, TIPO_INSCRICAO = @TIPO_INSCRICAO, DESENVOLVEDOR= @DESENVOLVEDOR, ID_SISTEMAS=@ID_SISTEMAS,TEMPLATE=@TEMPLATE,EXCECAO=@EXCECAO,FOTO=@FOTO,ID_SITUACOES=@ID_SITUACOES,id_grupos_operadores=@id_grupos_operadores,id_usuarios=@id_usuarios ");
                    SqlCmd.Append("where ID_OPERADORES = @ID_OPERADORES");
                }

                cmd = new FbCommand(SqlCmd.ToString());
                cmd.CommandType = CommandType.Text;

                cmd.Parameters.Add("@ID_OPERADORES", FbDbType.Integer).Value = ID_OPERADORES;
                cmd.Parameters.Add("@NOME", FbDbType.VarChar, NOME.Length).Value = NOME;
                cmd.Parameters.Add("@USERNAME", FbDbType.VarChar, USERNAME.Length).Value = USERNAME;
                cmd.Parameters.Add("@PASSWORD", FbDbType.VarChar, PASSWORD.Length).Value = PASSWORD;
                cmd.Parameters.Add("@INSCRICAO", FbDbType.VarChar, INSCRICAO.Length).Value = INSCRICAO;
                cmd.Parameters.Add("@TIPO_INSCRICAO", FbDbType.Char).Value = TIPO_INSCRICAO;
                cmd.Parameters.Add("@DESENVOLVEDOR", FbDbType.Char).Value = DESENVOLVEDOR;           
                cmd.Parameters.Add("@ID_SISTEMAS", FbDbType.Integer).Value = ID_SISTEMAS;           
                if (FOTO == null)
                {
                    FOTO = new byte[1];
                }
                cmd.Parameters.Add("@FOTO", FbDbType.Binary, FOTO.Length).Value = FOTO;
                if (TEMPLATE == null) {
                    TEMPLATE = string.Empty;
                }
                cmd.Parameters.Add("@TEMPLATE",FbDbType.VarChar,TEMPLATE.Length).Value=TEMPLATE;
                cmd.Parameters.Add("@EXCECAO",FbDbType.Char).Value=EXCECAO;
                cmd.Parameters.Add("@ID_SITUACOES",FbDbType.Integer).Value=ID_SITUACOES;          
                cmd.Parameters.Add("@id_grupos_operadores", FbDbType.Integer).Value = ID_GRUPOS_OPERADORES;
                cmd.Parameters.Add("@id_usuarios", FbDbType.Integer).Value = ID_USUARIOS;
                Connect Conm = new Connect();
                Conm.ExecuteCMDLivre(cmd);

                return ID_OPERADORES;
            }

    sexta-feira, 6 de agosto de 2010 20:43