SQL - campo em tempo de execução
Bom dia,
id := operacao(edOPeracao.text);
dm.query1.close;
dm.query1.SQL.clear;
dm.query1.sql.text := ´Update Protocolo set :campo = :campo - 1´;
dm.Query1.ParamByName(´campo´).asString := id;
dm.Query1.ExecSQL;
onde o id é o nome do campo que não é fixo, depende da ação do usuário, e o seu valor é baixado 1...não funciona, tem alguma maneira de passar o nome do campo pro sql em tempo de execução ?
Desde já agradeço.
id := operacao(edOPeracao.text);
dm.query1.close;
dm.query1.SQL.clear;
dm.query1.sql.text := ´Update Protocolo set :campo = :campo - 1´;
dm.Query1.ParamByName(´campo´).asString := id;
dm.Query1.ExecSQL;
onde o id é o nome do campo que não é fixo, depende da ação do usuário, e o seu valor é baixado 1...não funciona, tem alguma maneira de passar o nome do campo pro sql em tempo de execução ?
Desde já agradeço.
Yanomami
Curtidas 0
Respostas
Motta
02/12/2003
refaça o sql ...
dm.query1.sql.text := ´Update Protocolo set ´ + ´campo1=´ + :campo;
dm.query1.sql.text := ´Update Protocolo set ´ + ´campo1=´ + :campo;
GOSTEI 0
Yanomami
02/12/2003
Motta, obrigado pela resposta...mas tem algum parametro errado pois não funcionou...
Tem idéia do q seja?
Tem idéia do q seja?
GOSTEI 0
Motta
02/12/2003
tente montar o sql todo na mão.
query.sql.clear;
query.sql.add(´update tabela set campo=´);
query.sql.add(´5 where chave=123´);
query.execsql;
isto não é muito eficiente em termos de banco (dependendo do banco)
query.sql.clear;
query.sql.add(´update tabela set campo=´);
query.sql.add(´5 where chave=123´);
query.execsql;
isto não é muito eficiente em termos de banco (dependendo do banco)
GOSTEI 0