Dúvidas com Atualização de Campos (Update)

07/04/2006

Prezados Colegas,

Tenho q atualizar determinadas colunas de uma tabela, as colunas são: Codigo, Cod_Cli, Nome, Versao, Pedido, Data_Pedido e etc...
Na coluna nome, as opções de preenchimento q existem são: GRERJ, SEG, Atual. GRERJ...enfim vários produtos a atualização devo ocorrer da seguinte forma:
1- Tenho q buscar os registros q tenham GRERJ e Atual. GRERJ
2- Checar se existe mais de 1 produto GRERJ p/mesmo cliente
3- Em caso de positivo, pegar o q tiver a data do pedido + antiga.
4- Pegar os registros q tenham o Atual. GRERJ com a data + recente.
5- Substituir os campos q me interessam p/o 1º registro do GRERJ q encontrei(o da data + antiga)

Deu p/entender + ou -?rsrs
Tentei testar a seguinte sintaxe(lógico q a clausula where naum está completa, foi só p/começar o teste)

Query1.SQL.Clear;
Query1.SQL.Add(´Update Produto set(Codigo, Cod_Cli, Versao, N_Pedido, Data_Pedido, NotaFiscal, Data_Ini_Contrato, Data_Fim_Contrato) = (select * From Produto)´);
Query1.SQL.Add(´Where Nome = ´GRERJ´ And Nome = ´Atual. GRERJ´´);
Query1.Open;

Só q ocorre o seguinte erro: ´Invalid use of keyword. Token: (Codigo,
Line Number 1.´

Alguém pode me ajudar, me dizer + ou - como seria a sintaxe correta ou o q ha de errado com a minha?

Desde já agradeço.


Fabiano_aprendiz

Respostas

07/04/2006

Rjun

Salvo engano, você não pode usar o comando UPDATE dessa maneira. Você precisar fazer um SET para cada campo.

UPDATE Tabela SET Campo1 = Valor, SET Campo2 = Valor WHERE <Condicao>



Responder Citar

07/04/2006

Paullsoftware

Você pode também pode usar parametros na atualização:
UpDate TABELA set(Nome=:Nome_Cli, Endereco=:End) where Codigo=:Cod_Cli



Responder Citar