Davico 0 Denunciar post Postado Novembro 22, 2008 Oi pessoal, sou novo com postgreSQL, to com Delphi 7, Zeos e BDados postgreSQL... instalei, fiz a conexão com o banco,... deu certo... so que ao executar uma query para inserir um registro, o registro é salvo. .... só q... acontece que o mesmo registro é salvo duas vezes ?????.. ... por favor alguem pode ajudar... o código é o seguinte: qryClientes.Active := False; qryClientes.SQL.Clear; qryClientes.SQL.Add('INSERT INTO "public"."SYS0501"("ID","TP","NC","SX","DN" )'); qryClientes.SQL.Add('VALUES ( :ID, :TP, :NC, :SX, :DN )'); qryClientes.Params[0].AsString := edtCodigo.Text; qryClientes.Params[1].AsString := IDTPessoa.Text; qryClientes.Params[2].AsString := edtNome.Text; qryClientes.Params[3].AsString := IDSexo.Text; qryClientes.Params[4].AsDate := StrToDate(edtDNascimento.Text); qryClientes.Active := True; qryClientes.Refresh; ... nÃO DA ERRO,... TA GRAVANDO... SO QUE DUPLICANDO REGISTROS ...... OU TA FALTANDO ALGUMA OUTRA COISA .... agradeço antecipadamente qualquer comentário.... Davico. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Novembro 24, 2008 Primeiro... quando se monta querys de insert, delete ou update dinâmicas, não se usa usa comandos como Active := True; Refresh ou Open numa TQuery, e sim o Execute. Provavelmente o que está acontecendo com seu programa é que você dá dois comandos que fazem a mesma query de inserção ser executada uma vez cada neste trecho: qryClientes.Active := True; qryClientes.Refresh; Troque este trecho pelo Execute da TQuery (não lembro agora de cabeça se é Execute ou ExecuteSQL, estou sem delphi aqui pra olhar agora). E faça inserts, updates e deletes dentro de try excepts, para tratar os erros de gravação que ocorrerem... a boa prática recomenda inclusive que se inicie transações e deem-se comits ou rollbacks quando necessário. []'s Compartilhar este post Link para o post Compartilhar em outros sites
Davico 0 Denunciar post Postado Novembro 25, 2008 Valeu Sr. Chrnos,.. troquei ACTIVE x OPEN e exclui queryClientes.Refresh.... ta belezinha.... fiz a mesma coisa com outros cadastros e ta rodando 100% CERTO. Muito obrigado,.... Abraços, Davico. Compartilhar este post Link para o post Compartilhar em outros sites