Array
(
)

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

Fabiano_aprendiz
   - 07 abr 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.


Rjun
   - 07 abr 2006

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

#Código


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



Paullsoftware
   - 07 abr 2006

Você pode também pode usar parametros na atualização:
#Código

UpDate TABELA set(Nome=:Nome_Cli, Endereco=:End) where Codigo=:Cod_Cli