Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
eremita Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Domingo, 7 de Janeiro de 2007 Mensagens: 228
|
Enviada: Qui Nov 05, 2015 6:17 pm Assunto: Unable to find record. No key specified |
|
|
Olá, preciso de um campo que dependendo do lançamento será retornado um fator de juros ou caso contrário será 0 (zerado).
Minha query esta retornando da forma como preciso, acontece que este campo podera ser ou não alterado pelo usuário.
O problema é que quando faço a alteração deste campo me retorna o erro acima. Já setei o ProviderFlags no CDS deste campo para False, criei e recriei várias vezes e o erro continua.
Tirando a linha que se refere ao campo da query e criando uma no CDS, funciona perfeitamente.
Segue a query:
Código: |
select
cab.EMPRES,
cab.DATOPE,
case when cab.CEDENT = 12 then 1 else 0 end as TICCED,
sac.NOME,
doc.NOME1 as DOCAPE,
case
when (det.CMC7 not in ('', '<<>:')) then doc.NOME1 || ' '|| substring(det.CMC7 from 2 for 3) || ' ' || substring(det.CMC7 from 5 for 4) || ' ' || det.NRODOC
else
doc.NOME1 || ' '|| det.NRODOC
end as DOCNRO,
det.NRODOC,
mov.ID,
mov.DATLAN,
mov.VALLAN,
mov.TIPPEN,
case when (pen.TIPMOV is Null) or (pen.TIPMOV = '0') then cast(ced.CFGOP2 as numeric(9,4)) else cast(0 as numeric(9,4)) end as TAXJRS, ******* COLUNA AONDE GERA O ERRO *******
ced.ID as CEDCOD,
ced.NOME as CEDNOM,
pen.NOME as NOMPEN,
coalesce(pen.CFGTP1,0) as CFGTP1,
coalesce(pen.CFGTP2,0) as CFGTP2,
coalesce(pen.CFGTP3,0) as CFGTP3,
case when pen.TIPMOV is Null then '0' else pen.TIPMOV end as TIPMOV,
(select sum(pp.valor2) from PAGPCL pp where (pp.AGENDO = mov.ID)) as TOTREC
from
AGENDO mov
left join
DETOPE det
on (mov.DETOPE = det.ID)
left join
CABOPE cab
on (cab.CABOPE = det.CABOPE) and (cab.EMPRES = det.EMPRES)
left join
TIPDOC doc
on (det.TIPDOC = doc.ID)
left join
SACADO sac
on (det.SACADO = sac.ID)
left join
CEDENT ced
on (cab.CEDENT = ced.ID)
left join
TIPPEN pen
on (mov.TIPPEN = pen.ID)
|
Alguma dica?
Desde já agradeço,
*Utilizo D7+FB 2.5 |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
eremita Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Domingo, 7 de Janeiro de 2007 Mensagens: 228
|
Enviada: Sex Nov 06, 2015 10:33 am Assunto: |
|
|
Já foi feito também e nada ... |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 06, 2015 12:45 pm Assunto: |
|
|
Em que momento exatamente está ocorrendo o erro?
Você pretende alterar o banco de dados? Se sim, qual tabela e qual(is) campo(s)? |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
eremita Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Domingo, 7 de Janeiro de 2007 Mensagens: 228
|
Enviada: Sex Nov 06, 2015 1:20 pm Assunto: |
|
|
O erro se dá quando altero a coluna TAXJRS.
Esta coluna é criada para que o usuário informe uma taxa para atualizar o valor de lançamento. Este campo não será atualizado na tabela de origem apenas, eu apenas estou pegando uma taxa que fica nesta tabela e dependendo de uma condição esta taxa será zerada. Seria como um campo temporário aonde aproveito uma informação que não será atualizada na base de origem. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 06, 2015 2:07 pm Assunto: |
|
|
O erro ocorre ao executar qual método?
Tem algum campo com a ProviderFlag pfInKey igual a true? |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
eremita Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Domingo, 7 de Janeiro de 2007 Mensagens: 228
|
Enviada: Sex Nov 06, 2015 2:31 pm Assunto: |
|
|
Deixe explicar melhor ...
O módulo ao qual estou aplicando é em uma liquidação de pendências do cliente.
Apresento um grid aonde trago data, valor, vencto, tipo de pendência, fator para correção e valor pago.
Neste grid os únicos campos que pode ser alterados são fator para correção e valor pago.
O erro ocorre no refresh após todo processo ter sido executado, como segue abaixo:
Código: | if (DataModule.cdsPCarteira.ApplyUpdates(0) = 0) then
DataModule.cdsPCarteira.Refresh; |
|
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 06, 2015 2:54 pm Assunto: |
|
|
Você disse anteriormente que não pretende atualizar o banco de dados, então não entendi porque é executado o método ApplyUpdates... |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
eremita Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Domingo, 7 de Janeiro de 2007 Mensagens: 228
|
Enviada: Sex Nov 06, 2015 2:56 pm Assunto: |
|
|
Não atualizo a tabela de onde estou "pegando" o fator, a tabela aonde ficam as pendências sim é atualizada pois estou processando a liquidação das referidas pendências. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 06, 2015 3:13 pm Assunto: |
|
|
Qual é o nome da tabela e dos campos que deverão ser alterados?
Quando os campos são alterados no Grid é feita alguma alteração via código nos campos que devem ser atualizados?
Qual(is) campo(s) faz(em) parte da PK dessa tabela? |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
eremita Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Domingo, 7 de Janeiro de 2007 Mensagens: 228
|
Enviada: Sex Nov 06, 2015 3:41 pm Assunto: |
|
|
Acompanhando a query do primeiro post seguem as respostas:
Qual é o nome da tabela e dos campos que deverão ser alterados?
Nome da Tabela: AGENDO
Campo a ser alterado: DATLIQ
Quando os campos são alterados no Grid é feita alguma alteração via código nos campos que devem ser atualizados?
Campo alterado no grid: TAXJRS (**observe como estou trazendo**)
e
VALPAG (criado no cds como InternalCalc)
Qual(is) campo(s) faz(em) parte da PK dessa tabela?
ID
O unico no ProviderFlag pfInkey True |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 06, 2015 4:11 pm Assunto: |
|
|
Não encontrei o campo DATLIQ na sua query.
Qual valor você pretende gravar nesse campo quando os campos TAXJRS e VALPAG são alterados no CDS? |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
eremita Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Domingo, 7 de Janeiro de 2007 Mensagens: 228
|
Enviada: Sáb Nov 07, 2015 9:51 am Assunto: |
|
|
Vamos tentar simplificar...
Em um grid preciso ter duas colunas que poderão ser alteradas pelo usuário. Criando no CDS e fazendo as devidas configurações, funciona perfeitamente. Acontece que preciso em uma dessas colunas trazer um fator que se encontra em uma outra tabela. Excluindo esta coluna no meu CDS e criando esta coluna pela query, quando faço a alteração e processo a rotina, o erro acontece.
Eu fiz o seguinte teste, criei uma coluna pela query aonde traz este fator e no CDS criei uma outra coluna. Abro o CDS, e percorro todos os registros atualizando este campo criado pelo gerado pela query. Faço as mesmas alterações e nada acontece.
Isto resolve meu problema, mas acredito que tenha a forma correta de se fazer isso. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
imex Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sáb Nov 07, 2015 4:46 pm Assunto: |
|
|
Até esse ponto entendi, mas não consegui entender o que você quer atualizar no banco de dados.
Você disse que o erro não ocorre se você cria outro campo no CDS e utiliza código para copiar o valor retornado pela query para esse campo, mas imagino que esse processo também não faz nenhuma atualização no banco de dados.
Dessa forma não sei ao certo o que sugerir, mas a idéia básica seria deixar as ProviderFlags iguais no CDS e no DataSet, sendo tudo igual a false para os campos que não devem ser alterados e a pfInKey igual a true para o campo chave da tabela a ser alterada. E em alguns casos também pode ser necessário adicionar código no evento OnGetTableName do DataSetProvider para atribuir o nome da tabela ao parâmetro TableName do evento.
Espero que ajude. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
eremita Aprendiz
![Aprendiz Aprendiz](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star2.gif)
Registrado: Domingo, 7 de Janeiro de 2007 Mensagens: 228
|
Enviada: Sáb Nov 07, 2015 6:14 pm Assunto: |
|
|
Todas as recomendações já foram feitas e o problema permanece.
O curioso é que tenho um módulo semelhante a este e nele tudo corre bem ...
Por enquanto ficarei com o método de criar a coluna pela query e atualizar uma outra coluna criada no cds após abri-lo.
Muito obrigado. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
|