none
Criar tabelas temporárias mysql via C# RRS feed

  • Pergunta

  • Pessoal,

    Estou tentando criar uma tabela temporária no mysql, porém na "unha" funciona e via sistema não cria.

    estou fazendo esse comando no mysql:

    CREATE TEMPORARY TABLE bd_administrativo.Temp_mail1 as (SELECT email FROM bd_administrativo.tb_mailing WHERE (matinal='1') AND (solicitante Like '%PESQUISA%') AND (status='1') ORDER BY email) 

    No visual Studio 2010 fiz assim.

    if (objConexao.State == ConnectionState.Open)
    {
       string strSQL = "CREATE TEMPORARY TABLE bd_administrativo.Temp_mail1 as (SELECT email FROM bd_administrativo.tb_mailing WHERE (matinal='1') AND (solicitante Like '%PESQUISA%') AND (status='1') ORDER BY email)";

       cmd = new MySqlCommand(strSQL, cConexao.objConexao);

       cmd.ExecuteScalar();
    }

    Att,

    Filipe Magalhães

    terça-feira, 16 de agosto de 2016 14:11

Respostas

  • Colega fiz uns testes aqui e aparentemente o que acontece é o seguinte, quando criamos pelo banco a tabela é criada e tão logo fechamos o aplicativo ela é eliminada, quando se cria pelo c# e tabela é apagada tão logo a conexão é fechada, faça um teste, de uma pausa logo após a criação pelo c# antes de fechar a conexão e verifique no banco vai verificar que a tabela esta lá, quando fechar a conexão ela é apagada.

    Se a resposta contribuiu com seu aprendizado por favor marque como Útil
    Se solucionou seu problema por favor marque como Resposta
    Atenção, se seu problema foi resolvido não deixe o post aberto 

    Visite : www.codigoexpresso.com.br

    quarta-feira, 17 de agosto de 2016 02:36

Todas as Respostas

  • Como fez sua string de conexão ?

    Se a resposta contribuiu com seu aprendizado por favor marque como Útil
    Se solucionou seu problema por favor marque como Resposta
    Atenção, se seu problema foi resolvido não deixe o post aberto 

    Visite : www.codigoexpresso.com.br

    terça-feira, 16 de agosto de 2016 14:31
  • Amigo,


                String HOST = "Servidor";
                String USUARIO = "root";
                String SENHA = "";
                String BANCO = "bd_administrativo";

                String stringConexao = "Database=" + BANCO + ";Data Source=" + HOST + ";User Id=" + USUARIO + ";Password=" + SENHA + "; pooling=false";

                //Criando objeto MySqlConnection
                objConexao = new MySqlConnection(stringConexao);

                objConexao.Open();

    terça-feira, 16 de agosto de 2016 15:17
  • tente assim, troque os dados por seus dados de conexão

    connectionString="server=localhost ;user id=root;pwd='123456';database=Escola;Connect Timeout=28800;Command Timeout=2880"

    se quiser dar uma olhada tenho uma classe pronta para fazer a conexão

    Classe para conexão MySql com C#

    Se a resposta contribuiu com seu aprendizado por favor marque como Útil
    Se solucionou seu problema por favor marque como Resposta
    Atenção, se seu problema foi resolvido não deixe o post aberto 

    Visite : www.codigoexpresso.com.br


    terça-feira, 16 de agosto de 2016 16:16
  • Amigo,

    Não criou a tabela. Não apresenta erro nenhum mas quando vou confirmar no mysql ele não gera.

    vou te explicar o que preciso as vezes mudando a maneira de gerar pode funcionar.

    Tenho um disparo de e-mails para 18 mil e-mails e ele não funciona por ter muitos e-mails, porém iria quebrar em lotes para envio, por isso estou criando tabela temporária. Tem outra ideia?

    Vlw

    Filipe Magalhães 

    terça-feira, 16 de agosto de 2016 18:00
  • Rodando esse script direto no banco de dados funciona?

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 16 de agosto de 2016 18:26
  • Sim, efetuei o teste e só não executa no sistema feito em c#

    Fiz outro teste tirei a criação da tabela temporária e coloquei um insert e funcionou tb.

    estou pensando em criar um classe para dar um insert numa tabela fixa, mas o ideal seria a temporária que mataria no final da aplicação.

    terça-feira, 16 de agosto de 2016 18:34
  • Crie uma procedure que cria uma tabela dinâmica temporária vai ser mais útil dessa forma

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 16 de agosto de 2016 20:40
  • Colega fiz uns testes aqui e aparentemente o que acontece é o seguinte, quando criamos pelo banco a tabela é criada e tão logo fechamos o aplicativo ela é eliminada, quando se cria pelo c# e tabela é apagada tão logo a conexão é fechada, faça um teste, de uma pausa logo após a criação pelo c# antes de fechar a conexão e verifique no banco vai verificar que a tabela esta lá, quando fechar a conexão ela é apagada.

    Se a resposta contribuiu com seu aprendizado por favor marque como Útil
    Se solucionou seu problema por favor marque como Resposta
    Atenção, se seu problema foi resolvido não deixe o post aberto 

    Visite : www.codigoexpresso.com.br

    quarta-feira, 17 de agosto de 2016 02:36
  • Pessoal,

    Agradeço a todas as ajudas, mas ficará muito lento.

    Vou ter que pensar outra solução.

    Att,

    Filipe Magalhães

    quarta-feira, 17 de agosto de 2016 11:51