Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com ADOQuery


Dolfin

Pergunta

Estou editando o post, pois minha dúvida não foi esclarecida, então vou escrever de forma mais compacta e objetiva!


É o seguinte: tenho um DBGrid, que exibe os dados de uma tabela clientes, através do ADOQUERY(select Nome, CPF, Endereço from Clientes)...
Eu gostaria de fazer alterações manualmente no banco de dados, através de DBEdits, então carrego os dados do cliente selecionado na DBGrid em DBEdits, e tenho um botão de salvar que executa a seguinte QUERY(insert into Clientes(Nome) values (:a)) e logo abaixo:
ADOQuery1.Parameters.ParamByName('a').Value:= DBEdit1.Text;

Supostamente isso deveria pegar o valor do DBEdit1 e adicionar na tabela certo? Errado, pois quando faço a nova query insert no ADOQuery, ele limpa e some com todos os registros, inclusive do DBGrid e do DBEdit (que está tudo conectado) e acaba inserindo uma linha vazia na tabela, uma vez que perdeu todos os dados no momento da nova query...
Como realizar isso? Como salvar os dados da primeira query no DBGrid para realizar a segunda query sem que eu perca tudo?

Coisas tentadas
Usar o comando ADOQuery1.Post depois da primeira query, achando que ia salvar, mas não salvou nada, quando dou a segunda query, some tudo do mesmo jeito...

Coisa pensadas
Depois de preencher o DBGrid com os dados na primeira query, 'deslinkar' ele do DataSource, para que não passe mais queries por ele, mas acho que isso ficaria uma porcaria :blink: ...

SALVE-ME QUEM PUDER!! Editado por Dolfin
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Uhmm... Ok, mas o problema na verdade está na hora da Query... No FormCreate eu dou a seguinte query:

ADOQuery1.SQL.Add('select Nome, CPF, Endereço from Clientes');

Assim ele preenche a DBGrid, aí na hora de salvar os dados eu to fazendo assim:

ADOQuery1.SQL.Add('insert into Clientes(Endereço) VALUES (:a)');

ADOQuery1.Parameters.ParamByName('a').Value:= DBEdit1.Text;

Só que pra isso eu preciso dar um .clear, pra fazer a nova query... Como que eu vou ficar trabalhando com novas queries e deixando as antigas lá??

Link para o comentário
Compartilhar em outros sites

  • 0
Uhmm... Ok, mas o problema na verdade está na hora da Query... No FormCreate eu dou a seguinte query:

ADOQuery1.SQL.Add('select Nome, CPF, Endereço from Clientes');

Assim ele preenche a DBGrid, aí na hora de salvar os dados eu to fazendo assim:

ADOQuery1.SQL.Add('insert into Clientes(Endereço) VALUES (:a)');

ADOQuery1.Parameters.ParamByName('a').Value:= DBEdit1.Text;

Só que pra isso eu preciso dar um .clear, pra fazer a nova query... Como que eu vou ficar trabalhando com novas queries e deixando as antigas lá??

você não precisa fazer isso basta usar o select, e usar o adoquery1.post pra salvar o registro,

o insert vai inserir um novo registro e pelo que eu entendi você quer alterar um registro que ta na tela.

Link para o comentário
Compartilhar em outros sites

  • 0
Uhmm... Ok, mas o problema na verdade está na hora da Query... No FormCreate eu dou a seguinte query:

ADOQuery1.SQL.Add('select Nome, CPF, Endereço from Clientes');

Assim ele preenche a DBGrid, aí na hora de salvar os dados eu to fazendo assim:

ADOQuery1.SQL.Add('insert into Clientes(Endereço) VALUES (:a)');

ADOQuery1.Parameters.ParamByName('a').Value:= DBEdit1.Text;

Só que pra isso eu preciso dar um .clear, pra fazer a nova query... Como que eu vou ficar trabalhando com novas queries e deixando as antigas lá??

você não precisa fazer isso basta usar o select, e usar o adoquery1.post pra salvar o registro,

o insert vai inserir um novo registro e pelo que eu entendi você quer alterar um registro que ta na tela.

Tem como exemplificar?

ATENÇÃO: Atente para as Regras do Forum

3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.

Editado por Jhonas
Regras do Forum
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...