SQL com nome dinâmico de tabelas.

Delphi

30/06/2003

Pessoal,

Preciso fazer um update no mesmo campo de várias tabelas. Fiz a função abaixo e queria saber se funciona. Desde já agradeço. Vinicius

procedure TfrmPrincipal.FazUpdate(pNomeTabela, pCodModOriginal, pCodModTroca: string);
begin
with qryAux do
begin
Close;
SQL.Clear;
SQL.Add(´UPDATE´ + pNomeTabela + ´SET COD_MODULO =:novocodigo´);
SQL.Add(´WHERE COD_MODULO =:codigoatual´);
ParamByName(´novocodigo´).AsString := pCodModTroca;
ParamByName(´codigoatual´).AsString := pCodModOriginal;
ExecSQL;
end;
end;


Vfalseth

Vfalseth

Curtidas 0

Respostas

Jurandi

Jurandi

30/06/2003

Com certeza funciona, mas não se esqueça que ao concatenar strings, não podemos ignorar os espaços (brancos) existentes entre clausulas/comandos.

Boa sorte,

Jurandi


GOSTEI 0
Thaisandrade

Thaisandrade

30/06/2003

Não testei seu exemplo para saber se funciona, mas você pode gerar a instrução S.Q.L. usando variáveis normalmente. Lembre-se que a instrução S.Q.L. nada mais é do que uma sequência de caracteres que você pode concatenar.Só tem que ter cuidado com os tipos de dados, no caso de uma comparação ou, no seu caso, de um update.


GOSTEI 0
Leonardo Wolf

Leonardo Wolf

30/06/2003

Além de concatenar vc precisa passar precisa usar a função QuotedStr
ou incluir +´´´+nomedatable+´´´´


GOSTEI 0
POSTAR