Selecionar vários registros em DBGrid e enviá-los para outra
Olá pessoal,
Como faço para selecionar vários registros em um DBrid e enviá-los para outra tabela? Tentei da seguinte forma:
Só q está acontecendo o seguinte:
Se eu seleciono 3 registros, está gravando na outra tabela o último registro selecionado 3 vezes, Se eu seleciono 6 registros, está gravando na outra tabela o último registro selecionado 6 vezes, e assim por diante.
Tipo:
Selecionei:
[color=red:a16c304996]Raimundo
Zezinho
Paulinha[/color:a16c304996]
Se a Paulinha foi o último registro selecionado no DBGrid, ele joga para a outra tabela:
[color=red:a16c304996]Paulinha
Paulinha
Paulinha[/color:a16c304996]
Como posso fazer isso?
Grato,
Ilano.
Como faço para selecionar vários registros em um DBrid e enviá-los para outra tabela? Tentei da seguinte forma:
procedure TFrmCertidoes.suiButton1Click(Sender: TObject);
Var
I:Integer;
begin
for i := 0 to DB3DGrid1.SelectedRows.Count - 1 do
begin
Certidoes.Append;
CertidoesNomeDoAluno.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´NomeDoAluno´).value;
CertidoesMatricula.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´Matricula´).value;
CertidoesNomeDoPai.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´NomeDoPai´).value;
CertidoesNomeDaMae.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´NomeDaMae´).value;
CertidoesDataDeNascimento.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´DataDeNascimento´).value;
CertidoesNaturalidade.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´Naturalidade´).value;
CertidoesNacionalidade.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´Nacionalidade´).value;
CertidoesCPF.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´CPF´).value;
CertidoesIdentidade.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´Identidade´).value;
CertidoesNomeDoCurso.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´NomeDoCurso´).value;
CertidoesNomeDaUnidade.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´NomeDaUnidade´).value;
CertidoesDataDeColacao.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´DataDeColacao´).value;
CertidoesAnoDaConclusao.Value:=DB3DGrid1.datasource.dataset.fieldbyname(´AnoDaConclusao´).value;
Certidoes.Post;
End;
end;
Só q está acontecendo o seguinte:
Se eu seleciono 3 registros, está gravando na outra tabela o último registro selecionado 3 vezes, Se eu seleciono 6 registros, está gravando na outra tabela o último registro selecionado 6 vezes, e assim por diante.
Tipo:
Selecionei:
[color=red:a16c304996]Raimundo
Zezinho
Paulinha[/color:a16c304996]
Se a Paulinha foi o último registro selecionado no DBGrid, ele joga para a outra tabela:
[color=red:a16c304996]Paulinha
Paulinha
Paulinha[/color:a16c304996]
Como posso fazer isso?
Grato,
Ilano.
Ilanocf
Curtidas 0
Respostas
Gandalf.nho
25/11/2004
O problema é que você não está movendo o registro de origem a cada Post.
GOSTEI 0
Khundalini
25/11/2004
Se vc procurou informação no help do Delphi sobre a propriedade SelectedRows ñ atentou, a propriedade SelectedRows é uma espécie de array (vamos dizer assim) onde cada elemento é um bookmark (ou ponteiro) do registro selecionado. Consulte o help do Delphi mais sobre esta propriedade. No help mesmo vc acha um exemplo de utilização da propriedade.
[]s
Rubem Rocha
Manaus, AM
[]s
Rubem Rocha
Manaus, AM
GOSTEI 0