Fórum Master detail com IBQUERY - como alterar dados do DBGRID? #389060

21/10/2010

0

Olá pessoal. Cansado de quebrar a cabeça resolvei lançar essa dúvida pra galera que manja de delphi e banco de dados.

Estou desenvolvendo uma aplicação master detail. Mostro os dados da tabela mestre em alguns campos EDIT e os dados da tabela detail num DBGRID. Até ai tudo funcionando bem.

Acontece que eu quero alterar os dados da tabela detail diretamente pelo DBGRID, como posso fazer isso? O meu DBGRID nem permite alteração.. não sei o que fazer a partir daí. Se eu conseguisse alterar, ai era só bolar um comando SQL pra salvar na tabela..

Alguém já faz isso? Alguma ajuda?

Obrigado.
João Telles

João Telles

Responder

Posts

21/10/2010

Leonardo Xavier

Veja se as propriedades Readonly esta como false, e Enable como True, de seu DBgrid.
Responder

Gostei + 0

21/10/2010

João Telles

ReadOnly etá como false e o DBGRID está ENABLED... tudo certo.. não entendo pq não consigo editar...

alguma luz?
Responder

Gostei + 0

21/10/2010

Wilson Junior

Verifique se a propriedade "Options/dgEditing" está como True.

Espero ter colaborado.
Responder

Gostei + 0

21/10/2010

João Telles

Sim, dgEditing está como true, mesmo assim não consigo alterar.

Para explicar melhor a situação. Esse DBGRID está ligado ao DATASOURCE que por sua vez está ligado à IBQUERY que faz um select no banco em busca de valores.
Responder

Gostei + 0

21/10/2010

Wilson Junior

Utilize um TIBDataSet no lugar do TIBQuery, vincule o TIBDataSet a um TDataSetProvider, sendo este vincluado ao TClientDataSet e este vinculado ao TDataSource.

Espero ter colaborado.
Responder

Gostei + 0

22/10/2010

João Telles

Wilson, fiz o que vc sugeriu. Aparentemente as ligações ficaram todas corretas. Contudo, ocorrem alguns problemas:

Para deixar mais claro.. como eu disse no início meu projeto é uma tabela master-detail. A tabela master aparece em DBEdits e a tabela detail aparece no DBGrid. Fiz as ligações no IBDataser, DataSetProvider, ClientDataSet e DataSource... tudo normal.

A tabela master funcionou normal... ela contem o select (Select * from master ORDER BY ID).

Só que.. a minha tabela detail parou de funcionar... no DBGrid.. apesar de eu conseguir editá-lo agora.. ele não aparece nada.. parece q o comando SQL não está funcionando.. o comando é (SELECT * FROM detail WHERE ID_LANC = :MESTRE ORDER BY ID) será que tenho q definir os parametros de outra forma.. ou em algum outro lugar.. ou existe alguma propriedade não ativada??
Responder

Gostei + 0

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

Aceitar