Fórum Copiar o registro anterior e usar parte dele #341307
04/05/2007
0
Preciso copiar parte de um registro da tabela e colocar no próximo registro. Ex: Minha tabela tem 5 campos diferentes e preciso copiar 2 campos do registro atual e usar para o próximo registro, mas não me interessa copiar esses campos para sempre.
Ouvi falar de um comando chamado Carry ou Set Carry do SQL, mas não sei usar isso.
Alguém pode me ajudar?
Mcsmarmcs
Curtir tópico
+ 0Posts
04/05/2007
Mcsmarmcs
Gostei + 0
04/05/2007
Adriano Santos
Eu criaria variáveis pra armazenar temporariamente os valores dos campos que precisa e daria um next na tabela. Depois do next você edita o registro e passa para os campos os valores armazenados nas variáveis. Assim:
procedure TForm1.Button1Click(Sender: TObject); var Nome: string; Endereco: string; begin Nome := ClientDataSet1.FieldByName(´NOME´).Asstring; Endereco := ClientDataSet1.FieldByName(´ENDERECO´).Asstring; ClientDataSet1.Next; ClientDataSet1.Edit; ClientDataSet1.FieldByName(´NOME´).Asstring := Nome; ClientDataSet1.FieldByName(´ENDERECO´).Asstring := Endereco; ClientDataSet1.Post; ClientDataSet1.ApplyUpdates(0); Edit1.Text := Nome; Edit2.Text := Endreco; end;
Gostei + 0
05/05/2007
Mcsmarmcs
var
data: string;
begin
data := QRYfuturo.FieldByName(´data´).Asstring;
QRYfuturo.Next;
QRYfuturo.Insert;
QRYfuturo.FieldByName(´data´).Asstring := data;
end;
Mas ainda não acabou, tem um campo que precisa se repetir, mas ele está em um local qualquer da tabela.
Ex: Ao entrar com o conteúdo do campo, seria necessário trazer algumas informações referentes a este campo.
Devo usar alguma consulta?
Gostei + 0
05/05/2007
Paullsoftware
Gostei + 0
05/05/2007
Adriano Santos
É isso ai, uso DBX, mas o princípio é o mesmo.
Gostei + 0
05/05/2007
Mcsmarmcs
Ao criar um novo registro, eu digito algo neste campo nome e deve haver uma consulta pra verificar se o conteúdo deste campo já existe.
Se o que digitei já existir, pego o conteúdo do campo data do registro antigo e replico no campo data do registro atual.
Gostei + 0
05/05/2007
Paullsoftware
se for, não acha meio impróprio essa técnica? uma vez que exitam umas 30 [b:ababbc3ee7]Maria José da Silva[/b:ababbc3ee7] como faria pra saber qual é? não sei se essa seria a melhor solução para o seu problema, ainda não entendi exatamente o que você quer fazer realmente... :roll:
Gostei + 0
05/05/2007
Mcsmarmcs
Gostei + 0
05/05/2007
Paullsoftware
é só uma ideia...:wink:
Gostei + 0
05/05/2007
Mcsmarmcs
Gostei + 0
06/05/2007
Adriano Santos
procedure TForm1.DBEditPesquisaExit...; begin with QueryAuxiliar do begin Close; Sql.Clear; Sql.Add(´SELECT * FROM TABELA WHERE CAMPO= :PESQUISA´); ParamByName(´PESQUISA´).AsString := DbEditPesquisa.Text; Open; if not IsEmpty then //Faz alguma coisa. Close; end; end;
Gostei + 0
06/05/2007
Paullsoftware
procedure TForm1.DBEditPesquisaExit...; begin with QueryAuxiliar do begin Close; Sql.Clear; Sql.Add(´SELECT * FROM TABELA WHERE CAMPO= :PESQUISA´); ParamByName(´PESQUISA´).AsString := DbEditPesquisa.Text; Open; if not IsEmpty then //Faz alguma coisa. Close; end; end;
Valeu [b:f4d1632d9d]x-man[/b:f4d1632d9d] pela força!!! :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)