Einzelnen Beitrag anzeigen

Dieter11

Registriert seit: 18. Nov 2008
35 Beiträge
 
#39

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 29. Apr 2009, 19:53
Hier noch einmal der Code:
Delphi-Quellcode:
begin
  inherited;

  with dm_Nails4You_Artikel do
  BEGIN
     ADOQuery_Preisliste.Active := False;
     ADOQuery_Preisliste.SQL.Clear;

     ADOQuery_Preisliste.SQL.Text := 'INSERT INTO Preisliste(ID_Artikel, Bezeichnung) VALUES( :ID, :Bezeichnung)';
     ADOQuery_Preisliste.Parameters.ParseSQL(ADOQuery_Preisliste.SQL.Text, true);

     with DBGrid1.DataSource.DataSet do
     begin

// DBGrid1.SelectedRows.Refresh;
     for i := 0 to DBGrid1.SelectedRows.Count - 1 do
     BEGIN

       DBGrid1.DataSource.DataSet.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));

       ShowMessage('i: ' + InttoStr(i) );

       ADOQuery_Preisliste.Parameters.ParamValues['ID'] := AdoQuery_Artikel.FieldValues['id'];
       ADOQuery_Preisliste.Parameters.ParamValues['Bezeichnung'] := AdoQuery_Artikel.FieldValues['Bezeichnung'];

       ADOQuery_Preisliste.ExecSQL;
    End;

  end;
end;
Die Schleife for i := 0 to DBGrid1.SelectedRows.Count - 1 do funktioniert. Es wird tatsächlich zu jedem Datensatz im Grid gesprungen. D.h., dass auch DBGrid1.DataSource.DataSet.GotoBookmark(pointer(DB Grid1.SelectedRows.Items[i])); funktioniert.
Aber dann wird immer nur der 1. Datensatz kopiert.
  Mit Zitat antworten Zitat