Selecao DevMedia QUERO SER PRIME

Fórum Dica de ClientDataSet #334350

06/12/2006

0

Estou trabalhando com um conjunte dbxpress( sqlds, dsp, cds, ds ) e mais um grid.

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

Rodolfo.pirolo

Responder

Posts

07/12/2006

Brasidata

Bom dia.

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


Responder

Gostei + 0

07/12/2006

Brasidata

Ah!
Tem tb a propriedade AutoEdit do ds que se não estiver em TRUE tb pode atrapalhar o seu objetivo.


Responder

Gostei + 0

07/12/2006

Rogick

Já verificou os parametros da prop Options do DataSetProvider, se possivel poste aqui p/ q possamos ver melhor o problema


Responder

Gostei + 0

07/12/2006

Emerson Nascimento

alterar a instrução no cds é uma prática que deve ser encorajada. não é necessário alterar o sqlds a todo momento.

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.


Responder

Gostei + 0

07/12/2006

Rodolfo.pirolo

Emerson

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar