Jump to content
Fórum Script Brasil
  • 0

Problema com ADOQuery


Dolfin

Question

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!! Edited by Dolfin
Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other 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.

Edited by Jhonas
Regras do Forum
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149296
    • Total Posts
      645693
×
×
  • Create New...