Galera da lista, seguinte. Em Anexo consta um Select que está em uma SQLQuery, por ser muito grande, mandei em anexo.
Mas vamos lá, os campos que ele retorna são os sequintes, e seus respectivos valores de providers flags que estão como TRUE, tanto da query quanto do Clientdataset. Estes campos são a minha chave da tabela NRO_MC: pfInUpdate, pfInWhere, pfInKey. COD_ITEM: pfInUpdate, pfInWhere, pfInKey. COD_APROVADOR: pfInUpdate, pfInWhere, pfInKey. SEQUENCIA: pfInUpdate, pfInWhere, pfInKey. Estes NÃO devem ser atualizados CODIGO: Tudo False nos flags SIGLA_FORN: Tudo False nos flags DSC_REDUZIDA: Tudo False nos flags TOTAL_ITEM: Tudo False nos flags APROVADO: Tudo False nos flags REPROVADO: Tudo False nos flags Estes campos serão atualizados DT_APROVACAO:pfInUpdate STATUS:pfInUpdate OBS_APROVACAO:pfInUpdate O DataSetProvider tem na propriedade UpdateMode: upWhereKeyOnly Os campos chave, e os campos que devem ser atualizados são de uma Tabela chamada APROVACAO_TABELA_PRECO, que vocês podem ver no Select Vamos para o Problema agora. Eu Edito, dou Post, tudo certo. No Momento do Apply Updates, o Reconcile Error me retorna: ORA-00904: field SEQUENCIA Invalid Identifier. Bem, coloquei o SQLMonitor e veja o resultado no momento do apply updates: update "ITEM_TABELA_PRECO" set "STATUS" = :1 where "NRO_MC" = :2 and "COD_ITEM" = :3 and "COD_APROVADOR" = :4 and "SEQUENCIA" = :5 Ou seja, ele achou que a tabela que deveria ser atualizada seria a ITEM_TABELA_PRECO(por isso o erro, porque não existe o campo SEQUENCIA na ITEM_TABELA_PRECO), e a única referencia a esta tabela é um SubSelect na Clausula FROM. Andei conversando com o Amigo Francisco Thiago, que frequenta a lista e ele também não tinha uma explicação lógica para isto, mas sugeriu colocar no OnGetTableNames do DataSetProvider o nome da tabela que deve ser atualizada. Muito bem, funcionou. Mas trabalho diariamente com este tipo de select, contendo subselect, e a configuração dos Flags basta para que o update seja executado corretamente. Me ajudem aí galera... Umm abraço, Danilo Rogério Betta Informática --------------------------------- Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! ---------- SELECT A.NRO_MC, A.COD_ITEM, A.COD_APROVADOR, A.SEQUENCIA, A.FORN_CODIGO || '-' || A.FORN_COMPLE AS CODIGO, A.SIGLA_FORN, I.DSC_REDUZIDA, DECODE(B.NRO_TABELA_PRECO, NULL,(SELECT (NVL(IC.VLR_UNITARIO,0) - NVL(IC.VLR_DESCONTO,0)) + NVL(IC.VLR_IPI,0) + NVL(IC.VLR_OUTDESPESA,0) FROM ITEM_COLETA_PRECO IC WHERE IC.NRO_MC = A.NRO_MC AND IC.FORN_CODIGO = A.FORN_CODIGO AND IC.FORN_COMPLE = A.FORN_COMPLE AND IC.SIGLA_FORN = A.SIGLA_FORN AND IC.COD_ITEM = A.COD_ITEM), (SELECT (NVL(IT.VLR_UNITARIO,0) - NVL(IT.VLR_DESCONTO,0)) + (NVL(IT.VLR_UNITARIO,0) - NVL(IT.VLR_DESCONTO,0) * (NVL(IT.PERC_IMPOSTO,0)/100)) + NVL(IT.VLR_OUTDESPESA,0) FROM ITEM_TABELA_PRECO IT WHERE IT.NRO_TABELA_PRECO = B.NRO_TABELA_PRECO AND IT.COD_ITEM = A.COD_ITEM)) AS TOTAL_ITEM, A.DT_APROVACAO, A.STATUS, A.OBS_APROVACAO, ' ' AS APROVADO, ' ' AS REPROVADO FROM APROVACAO_TABELA_PRECO A, (SELECT T.NRO_TABELA_PRECO, T.NRO_MC, T.FORN_CODIGO, T.FORN_COMPLE, T.SIGLA_FORN FROM TABELA_PRECO T WHERE T.NRO_TABELA_PRECO = (SELECT MAX(NRO_TABELA_PRECO) FROM TABELA_PRECO WHERE NRO_MC = T.NRO_MC AND FORN_CODIGO = T.FORN_CODIGO AND FORN_COMPLE = T.FORN_COMPLE AND SIGLA_FORN = T.SIGLA_FORN AND BLOQUEADA = 'S' ) ) B, ITEM I WHERE A.NRO_MC = B.NRO_MC(+) AND A.FORN_CODIGO = B.FORN_CODIGO(+) AND A.FORN_COMPLE = B.FORN_COMPLE(+) AND A.SIGLA_FORN = B.SIGLA_FORN(+) AND A.COD_ITEM = I.COD_ITEM AND A.STATUS = 'P' AND A.SEQUENCIA = (SELECT MAX(SEQUENCIA) FROM APROVACAO_TABELA_PRECO WHERE NRO_MC = A.NRO_MC AND COD_ITEM = A.COD_ITEM AND COD_APROVADOR = A.COD_APROVADOR) AND A.COD_APROVADOR =:USUARIO ORDER BY A.COD_ITEM [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html