GARANTIR DESCONTO

Fórum Update com ADOquery delphi #574374

31/01/2017

0

Bom dia.


Alguém teria algum exemplo de update utilizando a conexão com ADO?

Tentei com o procedimento do link: https://www.devmedia.com.br/forum/adoconnection-e-adoquery/178873.... mas não deu certo.

Se puderem ajudar, agradeço muito, pois só falta o update.

Obrigado
Nomad

Nomad

Responder

Post mais votado

31/01/2017

Boa tarde!

Qual o erro que tá dando?

Pra conexão tu pode tentar isso aqui:
http://doispontozero-programador.blogspot.com.br/2017/01/conectando-o-delphi-com-o-banco-de.html

Daniel Araújo

Daniel Araújo
Responder

Gostei + 1

Mais Posts

31/01/2017

Nomad

Bom dia.


Alguém teria algum exemplo de update utilizando a conexão com ADO?

Tentei com o procedimento do link: https://www.devmedia.com.br/forum/adoconnection-e-adoquery/178873.... mas não deu certo.

Se puderem ajudar, agradeço muito, pois só falta o update.

Obrigado


O link é: https://www.devmedia.com.br/forum/adoconnection-e-adoquery/178873
Responder

Gostei + 0

31/01/2017

Nomad

Bom dia.


Alguém teria algum exemplo de update utilizando a conexão com ADO?

Tentei com o procedimento do link: https://www.devmedia.com.br/forum/adoconnection-e-adoquery/178873.... mas não deu certo.

Se puderem ajudar, agradeço muito, pois só falta o update.

Obrigado


Algm poderia ajudar?
Responder

Gostei + 0

31/01/2017

Nomad

Boa tarde!

Qual o erro que tá dando?

Pra conexão tu pode tentar isso aqui:
http://doispontozero-programador.blogspot.com.br/2017/01/conectando-o-delphi-com-o-banco-de.html


Boa tarde, Daniel.

Não chega a ocorrer erro, somente não altera mesmo. Acredito que o código de alteração esteja incorreto.
A conexão está ok... Inclui, consulta e exclui normalmente. A dúvida é no update mesmo, não sei como fazer.

Obrigado.
Responder

Gostei + 0

31/01/2017

Daniel Araújo

pode postar o trecho do código? Eu te digo o que está errado nele.
Responder

Gostei + 1

31/01/2017

Nomad

pode postar o trecho do código? Eu te digo o que está errado nele.


Então Daniel... Eu testei com o código daquele link que passei no inicio, na primeira pergunta.. E como não deu certo, acabei apagando.
Estou sem o código para alterar agora, apenas com o Form criado mesmo.. Teria algum trecho que poderia me enviar para eu testar?
Responder

Gostei + 0

31/01/2017

Natanael Ferreira

Veja um exemplo:

with ADOQUERY do 
 begin 
   Close; 
   SQL.Clear; 
   SQL.Add('UPDATE [tabela] SET [campo=:a] WHERE [condição=:b]'); 
   Parameters.ParamByName('a').Value:=[novo valor]; 
   Parameters.PatamByName('b').Value:=[condição de atualização]; 
   ExecSQL; 
   Open; 
 end; 
Responder

Gostei + 1

31/01/2017

Daniel Araújo

Tô sem o Delphi no momento, mas é basicamente isso:
Query.Close();
Query.SQL.Add('UPDATE cliente');
Query.SQL.Add('       SET nome = "' + edtNome.Text + '"');
Query.SQL.Add('WHERE codigo = ' + edtCodigo.Text);
Query.Exec();
Responder

Gostei + 1

31/01/2017

Nomad

Tô sem o Delphi no momento, mas é basicamente isso:
Query.Close();
Query.SQL.Add('UPDATE cliente');
Query.SQL.Add('       SET nome = "' + edtNome.Text + '"');
Query.SQL.Add('WHERE codigo = ' + edtCodigo.Text);
Query.Exec();


Daniel, fiz desta forma adaptando para minhas necessidades e ficou:
qryAlteraSocio.Close();
qryAlteraSocio.SQL.Add('UPDATE cadastro_socio');
qryAlteraSocio.SQL.Add(' SET nome = "' + DBEnome.Text + '"');
 qryAlteraSocio.SQL.Add('WHERE codigo = ' + DBEcod.Text);
 qryAlteraSocio.ExecSQL();


Mas ao tentar alterar ocorre o erro: Um nome de objeto ou coluna está faltando ou está vazio. Verifique se todas as colunas das instruções SELECT INTO têm nomes. Nas outras instruções, procure nomes de alias vazios. Alias definidos como " " ou [] não são permitidos. Adicione um nome ou um espaço único como nome de alias.

Saberia me informar o que pode ser?
Responder

Gostei + 0

31/01/2017

Daniel Araújo

Esqueci de limpar a query antes!

Acho que é só isso mesmo. Faz assim:
qryAlteraSocio.Close();
qryAlteraSocio.SQL.Clear();
qryAlteraSocio.SQL.Add('UPDATE cadastro_socio');
qryAlteraSocio.SQL.Add(' SET nome = "' + DBEnome.Text + '"');
qryAlteraSocio.SQL.Add('WHERE codigo = ' + DBEcod.Text);
qryAlteraSocio.ExecSQL();
Responder

Gostei + 1

31/01/2017

Daniel Araújo

Outra coisa, substitui essa parte:
qryAlteraSocio.SQL.Add(' SET nome = "' + DBEnome.Text + '"');

por isso:
qryAlteraSocio.SQL.Add(' SET nome = ' + QuotedStr(DBEnome.Text) );
Responder

Gostei + 1

31/01/2017

Nomad

Outra coisa, substitui essa parte:
qryAlteraSocio.SQL.Add(' SET nome = "' + DBEnome.Text + '"');

por isso:
qryAlteraSocio.SQL.Add(' SET nome = ' + QuotedStr(DBEnome.Text) );


Daniel, somente amanhã na parte da manhã que poderei fazer os testes. Mas dando certo ou não, irei responder aqui. Caso não dê certo, espero que possa continuar me ajudando.

Desde já, agradeço muito a compreensão e ajuda;
Responder

Gostei + 0

01/02/2017

Nomad

Outra coisa, substitui essa parte:
qryAlteraSocio.SQL.Add(' SET nome = "' + DBEnome.Text + '"');

por isso:
qryAlteraSocio.SQL.Add(' SET nome = ' + QuotedStr(DBEnome.Text) );


Daniel, bom dia.
Desta forma ocorre o erro: Sintaxe incorreta próxima a '='. E não consegui identificar o que está errado.

Fiz um teste informando o QuotedStr na linha do WHERE, e ocorre a seguinte situação.. Quando clico para alterar, apaga todos os campos. Saio da tela, e se tento acessar novamente ocorre o erro "qryAlteraSocio: Cannot perform this operation on a closed dataset".
Responder

Gostei + 0

01/02/2017

Daniel Araújo

Cola o trecho do código pra eu analisar.
Responder

Gostei + 1

01/02/2017

Nomad

Cola o trecho do código pra eu analisar.


Da forma como orientou...
  qryAlteraSocio.Close();
  qryAlteraSocio.SQL.Clear();
  qryAlteraSocio.SQL.Add('UPDATE cadastro_socio');
  qryAlteraSocio.SQL.Add('SET nome ='+QuotedStr(DBEnome.Text));
  qryAlteraSocio.SQL.Add('WHERE codigo ='+DBEcod.Text);
  qryAlteraSocio.ExecSQL();


Alterando o WHERE...
 qryAlteraSocio.Close();
  qryAlteraSocio.SQL.Clear();
  qryAlteraSocio.SQL.Add('UPDATE cadastro_socio');
  qryAlteraSocio.SQL.Add('SET nome ='+QuotedStr(DBEnome.Text));
  qryAlteraSocio.SQL.Add('WHERE codigo ='+QuotedStr(DBEcod.Text));
  qryAlteraSocio.ExecSQL();
Responder

Gostei + 0

01/02/2017

Daniel Araújo

Ao meu ver está ok.
Tenta dessa forma:
qryAlteraSocio.Close();
qryAlteraSocio.SQL.Clear();
qryAlteraSocio.SQL.Add('UPDATE cadastro_socio');
qryAlteraSocio.SQL.Add(' SET nome = '+QuotedStr(DBEnome.Text));
qryAlteraSocio.SQL.Add(' WHERE codigo = '+DBEcod.Text);
qryAlteraSocio.ExecSQL();


Inclui alguns espaços antes do SET e do WHERE.

Se continuar dando erro, posta a mensagem do erro também.
Outra coisa, verifica se o DBEcod.Text está preenchido com o código do sócio.

Tu sabe depurar código?
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar