Selecionar vários registros em DBGrid e enviá-los para outra

Delphi

25/11/2004

Olá pessoal,

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

Ilanocf

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

25/11/2004

O problema é que você não está movendo o registro de origem a cada Post.


GOSTEI 0
Khundalini

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


GOSTEI 0
POSTAR