Fórum Erro ao adicionar código SQL à Query - O que está errado? #169937

17/07/2003

0

Olá,

Não consigo descobrir onde estou errando!!

A minha query para Alteração contém:
´UPDATE tabela
SET Campo = :PARÂMETRO...´

onde passo os valores por parâmetros, mas a cláusula:
´WHERE Campo = ...´
para que ele possa alterar apenas um determinado registro eu passo em tempo de execução (de dentro do programa):

DM.QryAlteração.SQL.ADD(´ WHERE Campo = ´ + #39 + (Var) + 39 +
´ AND OutroCampo = ´ + 39 + (Var2) + 39)

Pois eu quero passar variáveis para a Query (´Var´ e ´Var2´)!!!
>> Eu já verifiquei que estas variáveis estão sendo enxergadas neste momento!!!

Ao executar não dá erro nenhum, mas parece que simplesmente ele ignora esta linha do código (onde eu adiciono na query a cláusula WHERE), pois ele altera todos os registros da tabela, como se não houvesse condição!!

O que eu faço pelo amor de Deus?????


Obrigada!!!


Fatima

Fatima

Responder

Posts

17/07/2003

Rômulo Barros

:twisted: :evil:

Provavelmente vc está utilizando o seguinte comando:

DM.QryAlteração.[color=red:cf97de03a5]Open[/color:cf97de03a5];
// O ´DM.QryAlteração.Open´ deve ser utilizado apenas para consultas...

Tente o Seguinte:

DM.QryAlteração.[color=red:cf97de03a5]ExecSql[/color:cf97de03a5];

// O ´DM.QryAlteração.ExecSql´ Deve ser utilizado quando tivermos instruções como ´Insert, Update, Delete...´ em nossa query...


Responder

Gostei + 0

17/07/2003

Midas

acho que deveria passar todo o codigo via programação ... exemplo

with dtmodule.query do
begin
sql.clear;
close;
sql.add(´update tabela´);
sql.add(´set campo=parametros´);
sql.add(´where ....´);
paramby(´parametro1´):=....;
paramby(´parametro2´):=...;
....
execsql;
update;
end;

tente assim...


Responder

Gostei + 0

17/07/2003

Delmar

Só mais uma dica
Antes de executar, vc pode verificar se a sintaxe ficou correta
exibindo a string SQL
showmessage(query1.SQL.Text);

Assim como os demais colegas, reforço a sugetão de que troque as variáveis, por parâmetros
T+


Responder

Gostei + 0

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

Aceitar