Fórum Editar arquivo salvo que está ordenado no DBGrid #263629
28/12/2004
0
Estou com a seguinte dúvida, ou melhor, não tenho idéia de como fazer,
tenho um form com um DBGrid (conectado a um datasource4), dou 2 cliques nele e ele mostra no form3 com 3 DBTexts (conectado ao datasource4 também).
Até ae tudo bem, :arrow: o que quero é que, ao clicar em um botão, ele copie os dados dos DBTexts para os DBEdits para que possa alterar algo (nome, endereço, etc) só que quando clico e exporto os dados, ao clicar no DBEdit (que está conectado a o DataSource1) ele retorna com os ultimos dados que foram salvos na tabela. :shock:
Vagner.oliveira
Curtir tópico
+ 0Posts
07/01/2005
Sydhnney
Sydhnney
flw
Gostei + 0
14/01/2005
Vagner.oliveira
[b:c8582e0751]begin[/b:c8582e0751]
DBEdit1.Text:=Query1.FieldByName( ´Nome´ ).AsString;
DBEdit2.Text:=Query1.FieldByName( ´Endereço´ ).AsString;
DBEdit3.Text:=Query1.FieldByName( ´Telefone´ ).AsString;
DBEdit4.Text:=Query1.FieldByName( ´Telefone2´ ).AsString;
[b:c8582e0751]end[/b:c8582e0751];
Gostei + 0
14/01/2005
Sydhnney
Pelo que entendi vc está usando Table para inserir, gravar, alterar, etc... e uma Query para efetuar pesquisa.
Bom...para poder alterar registros vc tem que setá-lo primiero na Table, usando o camando Table.Locate.
Por exemplo.
Vc acabou de fazer a pesquisa, através de uma query e ela retornou vários registros para vc. Na procedure ´procedure TForm1.DBGrid1DblClick(Sender: TObject);´ faça assim.
1) Declare uma varíavel para receber o indice da tabela; (var...)
1) Grava o indice do registro selecionado nesta variável;
2) Use este comando para setar o registro. Table1.locate(´indice´,variável,[])
Pronto
A table está setada e pronto para alterar os dados.
Se não conseguir pesquise sobre o comando comando Locate, pertencente a TTable, concerteza vai resolver seu problema.!!!
Gostei + 0
17/01/2005
Vagner.oliveira
Gostei + 0
17/01/2005
Vagner.oliveira
agora ta correta a frase :oops:
Gostei + 0
18/01/2005
Sydhnney
Qualquer coisa estamos aí...
Falow
Gostei + 0
20/01/2005
Pistesil
Eu tenho 2 dúvidassobre o comando locate a primeira é se posso utiliza-lo em uma query, se sim ,como faço. E a segunda é se posso utilizalo em mais de um campo (ex Nome e codigo).
Desde ja agradeço pela atencao.
Gostei + 0
21/01/2005
Sydhnney
´query1.Locate(´nome´,edit1.text,[locaseinsensitive,lopartialkey])´
locaseinsensitive = para não fazer diferenciação de maiuscula e minuscula
lopartialkey = para fazer a busca parcial. Se vc digitar ´A´ ela já seta um registro que começe com a letra ´A´.
Quanto a sua segunda pergunta, usar este comando em dois campos eu nunca vi...eu tentei aki e não deu. Mas vc pode contornar isso utilizando o IF..then.
Por exemplo: Vc colocaria dois radiobuttons no form. Um para pesquisar pelo nome e outro pelo código e no evento onClick do button colocaria o código como segue abaixo:
If radiobutton1.Checked = true then
begin
query1.Locate(´nome´,edit1.text,[locaseinsensitive,lopartialkey]);
end;
If radiobutton2.Checked = true then
begin
query1.Locate(´código´,edit1.text,[locaseinsensitive,lopartialkey]);
end;
concerteza resolve tb....
blz...espero ter ajudado
falow
Gostei + 0
21/01/2005
Paulo_amorim
Pode-se utilizar o locate em mais de um campo sim. Deve-se, para tanto, utilizar um array ao passar os valores:
DataSet.Locate( ´campo1;campo2´, VarArrayOf([valor1, valor2]), []);
Espero que ajude
Até+
Gostei + 0
28/01/2005
Pistesil
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)