Fórum Dica de ClientDataSet #334350
06/12/2006
0
No commandtext do cds coloquei uma instrução sql do tipo:
select * from NOTA_FISCAL where ID_CONTA_PR = :iCta_PR, onde configurei o parametro para ftInteger e para input.
Com esta configuração o dbgrid funciona perfeitamente. Quando em tempo de execução mudo a opção commandtext para a seguinte instrução
Close;
CommandText := ´select * from NOTA_FISCAL where COD_PESSOA = :Cod_Pessoa and ST_NF = ´´E´´´ ;
Params[0].AsInteger := cds_CtaRecCOD_PESSOA.AsInteger;
Open;
O dbgrid mostra os dados mas não deixa fazer alteração.
Alguem pode me explicar porque?
Abraços
Rodolfo
Rodolfo.pirolo
Curtir tópico
+ 0Posts
07/12/2006
Brasidata
Em primeiro lugar gostaria de entender o motivo de vc usar o command text do cds e não o do sqlds.
Usar o command text do cds eu só faço quando quero UNICAMENTE consultar ( e pra isso funcionar a propriedade OPTIONS / poAllowCommandText do dsp tem que estar em TRUE).
Quem deveria fazer as inserções e alterações nas tabelas é o sqlds (deixo o command text do cds vazio e ligo a sua propriedate Provider Name ao dps e pronto).
Em segundo lugar, dê um duplo clique no cds ou sqlds para abrir o FieldEditor, e passeando pelos campos, verifique se a propriedade ProviderFlags / pfInUpdate está como True.
Em um desses pontos estará o seu erro.
Bom Trabalho
Gostei + 0
07/12/2006
Brasidata
Tem tb a propriedade AutoEdit do ds que se não estiver em TRUE tb pode atrapalhar o seu objetivo.
Gostei + 0
07/12/2006
Rogick
Gostei + 0
07/12/2006
Emerson Nascimento
o principal motivo disso?: aplicações n-tier, onde não se têm acesso ao sqlds, somente ao cds.
hum.... sobre a propriedade ProviderFlags... ela não influi no momento da edição. somente no momento da gravação dos dados é que o datasetprovider irá consultar essa propriedade e fazer o tratamento necessário.
pelo seu enunciado eu não consegui identificar onde pode estar o problema.
talvez a grade seja alterada para somente-leitura ou algo assim. pode ser ainda que o propriedade AutoEdit também esteja marcada de forma equivocada... algum evento pode estar causando isso.
Gostei + 0
07/12/2006
Rodolfo.pirolo
Voce acertou em cheio. Realmente tinha um evento que estava deixando o dbgrid com o status de desabilitado.
Aos demais, já havia passado um pente-fino em todas as possibilidades, só escapando esta do evento.
Muito obrigado a todos pela colaboração.
Rodolfo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)