Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

[Resolvido] Duplicate Entry

  • Por favor, faça o login para responder
3 respostas neste tópico

#1 Marcelo de Andrade

Marcelo de Andrade
  • Membros
  • 555 posts

Postado 13 junho 2011 - 18:55

Boa noite.

Estou com um problema que ainda não consegui resolver:
Estou inserindo no MySQL, registros através da ZQuery ( Componente Zeos ), e o delphi me apresenta a mensagem:

SQL ERROR: DUPLICATE ENTRY 'valor' FOR KEY 'PRIMARY'

O problema é que mesmo sem registro algum no banco de dados, ele me apresenta esse erro. Já executei a query diretamente no mysql e funciona corretamente. O código que estou utilizando para inserir é esse:

      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Close;
      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.SQL.Clear;

      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.SQL.Append('INSERT INTO pessoa (cpf, nome, telefone, endereco, cidade, estado) VALUES (:CPF, :Nome, :Telefone, :Endereco, :Cidade, :Estado)');
      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Params.ParamByName('CPF').AsString   := LabeledEditCPF.text;
      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Params.ParamByName('Nome').AsString  := LabeledEditNome.text;
      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Params.ParamByName('Telefone').AsInteger := StrToInt(LabeledEditTelefone.text);
      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Params.ParamByName('Endereco').AsString := LabeledEditEndereco.text;
      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Params.ParamByName('Cidade').AsString := LabeledEditCidade.text;
      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Params.ParamByName('Estado').AsString := ComboBoxEstado.text;

      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.ExecSQL;
      UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Active := True;

Obs: Mesmo apresentando o erro, ele insere no BD.

Alguém conseguiria me ajudar?
Abraço.
  • 0

#2 bdexterholland

bdexterholland

    Bacharel em sistemas de informação

  • Membros
  • 1.178 posts

Postado 14 junho 2011 - 09:51

Tem como postar a DDL da tabela?

Pelo código que postou não parece ter problema algum...
  • 0

#3 marcio.theis

marcio.theis
  • Membros
  • 5.382 posts

Postado 14 junho 2011 - 11:08

Faz um teste removendo a linha
UnitDataModuleMySQL.DataModuleMySQL.ZQuery1.Active := True;
Pois para comandos de Insert, Update e Delete o ExecSQL() basta.
  • 0

#4 Marcelo de Andrade

Marcelo de Andrade
  • Membros
  • 555 posts

Postado 14 junho 2011 - 13:23

Obrigado pela atenção de vocês.

@marcio.theis
Eu fiz esse teste ontem logo após ter postado, era exatamente essa linha, retirei e está funcionando corretamente. Problema Resolvido.
  • 0




Publicidade

/ins>