Alexandre, Cara o teu funcionou perfeitamente, mas eu já havia implementado da seguinte forma...
1. Coloca o SQL dentro do SQLQuery..(pode ser o SubSelect ou como tu me mandastr Join) 2. Adicionar os Field da SQLQuery, setar apenas providerflags da chave (CODPESSOA, por exemplo) para pflnkey = true, o resto deixa igual 3 Coloca o DataSetProvider DataSetProvider.DataSet := SQLQuery DataSetProvider.UpdateMode := upWhereKeyOnly 4. no evendo OnGetTableName do DataSetProvider TableName = NOME_DA_TABELA q vai atualizar 5 Coloca o ClientDataSet ClientDataSet.ProviderName := DataSetProvider 6. no evendo OnAfterPost e OnAfterDelete do ClientDataSet coloca o ClientDataSet.ApplyUpdates(-1); por exemplo, tenho Select T.CODALGUMACOISA, T.CODOUTRACOISA, T.DESCRICAO, (Select DESCRICAO from OUTRATABELA where CODOUTRACOISA = T.CODOUTRACOISA) as CODOUTRACOISA_D from TABELA T com eu tinha usando, em TableName := 'TABELA' e prontinho... valeu pela ajuda moçada... []'s ----- Original Message ----- From: "Alexandre Oliveira" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Wednesday, January 26, 2005 5:54 PM Subject: RES: [delphi-br] Perguntinha básica (DBX) Olá, Dica: 1) remova todos os fields do clientdataset; 2) vá até o sqlquery e remova os fields também; 3) agora veja este novo select. (o que voce passou ficou meio confuso, este é apenas um exemplo); > > select t.codped, t.dataped, c.nomecli, c.endercli, c.cpf_cnpj_cli > from TBL_PED t left join TBL_CLI c > on c.CODCLI = t.CODCLI > 4) volte ao sqlquery e adicione novamente os campos. Os providerflags dos campos NOMECLI e ENDERCLI devem estar todos = false. Os providerflags do campo DATAPED deve estar apenas com 'pfInUpdate' = true. Os providerflags do campo CODPED deve estar com 'pfInUpdate', 'pfInWhere' e 'pfInKey' como true. 5) vá no datasetprovider e altere o updatemode para upWhereKeyOnly. 6) vá ao clientdataset e adicione novamente os campos. Não é preciso modificar nada. Teste e reporte para nós. []'s Alexandre Oliveira Campioni Analista de Sistemas A-Tecnologia e Sistemas de Informacao Ltda. Sao Joaquim da Barra - Sao Paulo - Brazil [EMAIL PROTECTED] -----Mensagem original----- De: Alan [mailto:[EMAIL PROTECTED] Enviada em: quarta-feira, 26 de janeiro de 2005 13:03 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Perguntinha básica (DBX) e ae Thiago, blz?? só agora li teu e-mail.. cara eu ja tinha feito isso, não resolveu, não manjo muito de DBX, mas esse metodo eu tinha visto em uma revista do ClubeDelphi e não funcinou :( c tiver alguma outra dica eu aceito abraço ----- Original Message ----- From: "Francisco Thiago de Almeida" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Wednesday, January 26, 2005 9:19 AM Subject: Re: [delphi-br] Perguntinha básica (DBX) > > O campo com o subselect.. Adicione ele no Field Editor e retire da opção > ProviderFlags todas as opções.... > Com isso acredito que funcione... (faça isso no CDS e no SQLQuery) > > Espero ter ajudado > > Thiago > ----- Original Message ----- > From: "Alan" <[EMAIL PROTECTED]> > To: <delphi-br@yahoogrupos.com.br> > Sent: Tuesday, January 25, 2005 3:25 PM > Subject: [delphi-br] Perguntinha básica (DBX) > > > > começei a usar o DBX agora....eu tenho uma > > SQLQuery , um DataSetProvider e um ClientDataSet > faço uma selecção, tipo > > Select T.CODALGUMACOISA, T.CODOUTRACOISA, T.DESCRICAO, > (Select DESCRICAO from OUTRATABELA > where CODOUTRACOISA = T.CODOUTRACOISA) as CODOUTRACOISA_D > from TABELA T > > é mais ou menos isso....quando não tinha um SubSelect funcionava blz > apenas > com um applyupdates, alguem pode me dar uma dica como eu faço agora??? com > esse subselect no meio? > > [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 -- <<<<< 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