none
Erro ao tentar criar uma Trigger no MySQL RRS feed

  • Pergunta

  • Opa a todos,

    Pessoal tou tentando criar uma trigger no MySQL via C# mas da Fatal Error.

    Eu debuguei e ta tudo certinho ele abre a conexão e quando executa a linha "cmd.ExecuteNonQuery()" ai ele da o Fatal Error.

    Veja se alguém consegue me ajudar.

    Obrigado

     conectar();
                
                MySqlDataReader reader = null;
                try
                {
    
                    MySqlCommand cmd = new MySqlCommand(inserteTrigger, conn);
                    //reader = cmd.ExecuteScalar();
                    if (cmd.ExecuteNonQuery()> 0)
                    {
                        MessageBox.Show("Trigger incluída com sucesso.");
                    }
                    else
                    {
                        MessageBox.Show("Problemas na inclusão desta Trigger.");
                    }
                    cmd.Dispose();
                }
                catch (Exception ex)
                {
                    tbTeste.Text = inserteTrigger;
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    if (reader != null)
                    {
                        reader.Close();
                    }
    
                    // close connection
                    if (conn != null)
                    {
                        conn.Close();
                    }
                }
                fechar();

    domingo, 12 de maio de 2013 08:44

Todas as Respostas

  • Por que marcaram o meu tópico como conteúdo abusivo?

    Como eu desmarco isto?

    segunda-feira, 13 de maio de 2013 17:11
  • Favor postar a ex completa

    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    quarta-feira, 15 de maio de 2013 14:31
    Moderador
  • Seilor boa tarde. Olha o codigo que envie esta completo so esta faltando a string de conexão que eu substitui pela função CONECTAR e a função FECHAR fecha a conexão.

    A variável inserteTRIGGER tem um codigo simples que funciona perfeitamente quando eu faço via query no banco. Este seria um exemplo do conteúdo desta string.

    begin 
    DECLARE valorNovo TEXT;
    set @valorNovo=concat('id: ',NEW.id,', ');
    set @valorNovo=concat(@valorNovo, 'logId: ',NEW.logId);
    INSERT INTO logEventos SET tabela='TEXTOS', Data = now(), IdUsuario = NEW.logId, nomeUsuario = NEW.logUsuario, IP = NEW.logIP, evento='Inclusao', valoresNovos= @valorNovo; 
    end
    Obrigado

    quarta-feira, 15 de maio de 2013 18:29
  • Seilor fiz alguns testes aqui e o erro na linha que tem o comando SET.

    DROP TRIGGER IF EXISTS `textosInsert`; 
    CREATE TRIGGER `textosInsert` AFTER INSERT ON `textos` 
    FOR EACH ROW begin 
    DECLARE valorNovo TEXT; 
    set @valorNovo=concat(@valorNovo, 'idCategoria: ',NEW.idCategoria,', ');
    set @valorNovo=concat('id: ',NEW.id,', '); 
    end;

    Este é o conteudo da variavel inserteTrigger.

    Se eu publico este código no mysql ele cria o trigger normalmente mas se executo ele no aplicativo da um Erro Fatal sem nenhuma explicação.

    Obrigado

    sábado, 18 de maio de 2013 19:26