Update com ADOquery delphi
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
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
Curtidas 0
Melhor post
Daniel Araújo
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
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
GOSTEI 1
Mais Respostas
Nomad
31/01/2017
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
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
GOSTEI 0
Nomad
31/01/2017
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
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?
GOSTEI 0
Nomad
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
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.
GOSTEI 0
Daniel Araújo
31/01/2017
pode postar o trecho do código? Eu te digo o que está errado nele.
GOSTEI 1
Nomad
31/01/2017
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?
GOSTEI 0
Natanael Ferreira
31/01/2017
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; GOSTEI 1
Daniel Araújo
31/01/2017
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();
GOSTEI 1
Nomad
31/01/2017
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?
GOSTEI 0
Daniel Araújo
31/01/2017
Esqueci de limpar a query antes!
Acho que é só isso mesmo. Faz assim:
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();
GOSTEI 1
Daniel Araújo
31/01/2017
Outra coisa, substitui essa parte:
por isso:
qryAlteraSocio.SQL.Add(' SET nome = "' + DBEnome.Text + '"');por isso:
qryAlteraSocio.SQL.Add(' SET nome = ' + QuotedStr(DBEnome.Text) );GOSTEI 1
Nomad
31/01/2017
Outra coisa, substitui essa parte:
por isso:
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;
GOSTEI 0
Nomad
31/01/2017
Outra coisa, substitui essa parte:
por isso:
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".
GOSTEI 0
Daniel Araújo
31/01/2017
Cola o trecho do código pra eu analisar.
GOSTEI 1
Nomad
31/01/2017
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();
GOSTEI 0
Daniel Araújo
31/01/2017
Ao meu ver está ok.
Tenta dessa forma:
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?
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?
GOSTEI 1
Nomad
31/01/2017
Ao meu ver está ok.
Tenta dessa forma:
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?
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?
Fiz da forma como me passou, e novamente ocorreu Sintaxe incorreta próxima a '='. O DBEcod está preenchido.
Será que o ADOquery influencia em algo?
E referente a depurar código, ainda não sei como fazer. Iniciei em delphi a pouco tempo.
GOSTEI 0
Daniel Araújo
31/01/2017
Vê aqui com depura:
http://www.activedelphi.com.br/forum/viewtopic.php?p=2555&sid=2cd768eb5ecb9454e932f0f0b29a31dc
Quando tiver depurando, para na linha onde tem o 'where codigo...', posiciona o cursor sobre o .Text e vê qual o valor do campo. Pela mensagem do erro, acredito que o campo DBEcod.Text esteja sem valor ou com um valor inválido.
http://www.activedelphi.com.br/forum/viewtopic.php?p=2555&sid=2cd768eb5ecb9454e932f0f0b29a31dc
Quando tiver depurando, para na linha onde tem o 'where codigo...', posiciona o cursor sobre o .Text e vê qual o valor do campo. Pela mensagem do erro, acredito que o campo DBEcod.Text esteja sem valor ou com um valor inválido.
GOSTEI 1
Nomad
31/01/2017
Vê aqui com depura:
http://www.activedelphi.com.br/forum/viewtopic.php?p=2555&sid=2cd768eb5ecb9454e932f0f0b29a31dc
Quando tiver depurando, para na linha onde tem o 'where codigo...', posiciona o cursor sobre o .Text e vê qual o valor do campo. Pela mensagem do erro, acredito que o campo DBEcod.Text esteja sem valor ou com um valor inválido.
http://www.activedelphi.com.br/forum/viewtopic.php?p=2555&sid=2cd768eb5ecb9454e932f0f0b29a31dc
Quando tiver depurando, para na linha onde tem o 'where codigo...', posiciona o cursor sobre o .Text e vê qual o valor do campo. Pela mensagem do erro, acredito que o campo DBEcod.Text esteja sem valor ou com um valor inválido.
Boa tarde Daniel.
Infelizmente, pelo link que passou não consegui compreender muito bem a depuração....
Mas realizei pelo f4, e ao deixar o cursos no .Text aparece DBEcod.Text | "
É isto mesmo? Estou confuso em relação a isso.
GOSTEI 0
Daniel Araújo
31/01/2017
É isso mesmo. O problema é que o DBEcod.Text não está preenchido. Por isso que o update não funciona. Agora o complicado vai ser saber porque ele está vazio. Entre 12:00 e 13:00 daria pra gente vê isso por acesso remoto, se você achar interessante é claro.
GOSTEI 1
Raimundo Pereira
31/01/2017
Daniel, boa noite!
Conseguiu resolver?
Qual BD ?
Conseguiu resolver?
Qual BD ?
GOSTEI 0
Nomad
31/01/2017
É isso mesmo. O problema é que o DBEcod.Text não está preenchido. Por isso que o update não funciona. Agora o complicado vai ser saber porque ele está vazio. Entre 12:00 e 13:00 daria pra gente vê isso por acesso remoto, se você achar interessante é claro.
Daniel, bom dia.
Agradeço muito sua atenção e empenho em me ajudar. Mas consegui resolver a situação junto a um colega... Alteramos a função para:
If qryAlteraSocio.State = dsEdit then
qryAlteraSocio.Post
Desta forma funcionou.
E novamente agradeço muito a vc, pois para nos que estamos começando é muito importante essa ajuda!!
GOSTEI 1