editar os dados de um dbgrid em outro form

Delphi

29/08/2012

Olá pessoal, estou aqui dando seguimento ao desenvolvimento do meu tcc e tenho uma duvida..

Assim, tenho uma Dbgrid que realiza as consultas ok > frmconsultar

quando eu clico em um registro setado na grid abre um form > frmalterar

tenho edits e uma combobox no frmalterar...

o frmalterar esta ligada ao frmconsultar via query > data source ok

o problema é que os dados não estão aparecendo dos edits para poder alterar..

Já olhei muitos topicos mas não sei onde colocar as informações..

Desde já agradeço a ajuda.
Mauricio Nicoli

Mauricio Nicoli

Curtidas 0

Respostas

Deivison Melo

Deivison Melo

29/08/2012

Vc está utilizando edit ou dbedit? Caso seja edit e eles deverão está com rotinas para que retornem os dados, caso sejam componentes dataware (dbedit e etc...) basta que eles estejam ligados ao dataset.
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

29/08/2012

Olá meu caro, realmente como o amigo Deivison falou, tem que ver se você está usando o TEdit ou o TDBEdit.

Caso utilize o TDBEdit, deve associar o mesmo ao seu DataSource nas propriedades 'DataSource' e 'DataField' aos campos correspondentes.

Um abraço
GOSTEI 0
Mauricio Nicoli

Mauricio Nicoli

29/08/2012

bem, liguei os campos conforme foi sugerido, apenas para facilitar minha vida, coloquei apenas dbedits e uma combobox..

quando eu clicar duas (2) vezes no registro setado no grid tem que abrir um form com todos os campos
preenchidos, porem quando eu clico no grid abre o form com os campos vazios..

no evento onchange do frmalterar do dbedit1.text do codigo eu coloquei o seguinte código..>> já está ligado ao DM.datasource

procedure Tfrmalterar.DBEdit1Change(Sender: TObject);
begin
DM.ClientDataSet.Locate('codigo.ADOQuerySQL.fieldByName(codigo).asstring],[loCaseInsensitive, loPartialKey)]');
end;


e da erro " Not enough actual parameters"

Observei que não consigo colocar a palavra "codigo" no DataField pois dá outro erro AdoQuerySql: Missing SQL property

Até onde eu sei falta comandos sql aqui, por isso o erro..

mas não to conseguindo descobrir quais são estes comandos..
GOSTEI 0
Armando Filho

Armando Filho

29/08/2012

Se usares Edit em vez de DBEdit podes atribuir os valores no evento OnDataChange do Datasource ligado ao grid.
GOSTEI 0
Mauricio Nicoli

Mauricio Nicoli

29/08/2012

amigo é o seguinte..

ai eu fiz um teste e coloquei assim..

procedure Tfrmalterar.DBEdit1Change(Sender: TObject);
begin
DM.ClientDataSet.Locate('codigo', DBedit1.text, [loCaseInsensitive, loPartialKey]);
end;

funcionou em partes..

o Dbedit monitor e o codigo não retornaram os campos, os demais todos
retornaram.

o codigo do Dbgrid..

procedure Tfrmconsultar.btnconsultarClick(Sender: TObject);
begin
DM.ClientDataSet.close;
DM.ADOQuerySQL.SQL.CLEAR;
DM.ADOQuerySQL.SQL.ADD('select codigo, filial, ip, nomepc, placamae, modelo, processador, placavideo, hd, placasom, memoria, placarede, monitor, sistemaop, soquete from componentes_filiais where filial like :filial');
DM.ADOQuerySQL.Parameters.ParamByName('filial').Value:= combobox.text;
DM.ClientDataSet.Open;
GOSTEI 0
POSTAR