Einzelnen Beitrag anzeigen

Benutzerbild von Loki77
Loki77

Registriert seit: 21. Feb 2006
Ort: Trier
132 Beiträge
 
Delphi XE2 Enterprise
 
#1

DBGrid SelectedRows in Tabelle schreiben

  Alt 28. Apr 2006, 10:10
Datenbank: Paradox • Version: 7 • Zugriff über: Query, Table
Guten Morgen!

Hab´mal wieder ´ne Frage zum DBGrid (meine Lieblings-Kompo.... )
Ich verknüpfe per SQL mehrere Tabellen und gebe das Resultat in einem DBGrid aus.
Nun möchte ich den Injalt der selektierten Zeilen [Multiselect] in eine eigene Tabelle schreiben.
Nur leider führt das Programm die Prozedur nur für die aktuell selektierte Zeile durch, nicht für
alle in der Bookmark-List. Warum?

Hier die Prozedur:

Delphi-Quellcode:
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
  i : integer;
begin
  tblMyTable.Open;
  for i := 0 to DBGrid6.SelectedRows.Count - 1 do
    try
    begin
      tblMyTable.Insert;
      tblMyTable.FieldByName('ZimmerIdent').AsInteger := DBgrid6.Columns[0].Field.Value;
      tblMyTable.FieldByName('AnbieterIdent').AsInteger := DBgrid6.Columns[1].Field.Value;
      tblMyTable.FieldByName('HotelIdent').AsInteger := DBgrid6.Columns[2].Field.Value;
      tblMyTable.FieldByName('Hotelname').AsString := DBgrid6.Columns[3].Field.Value;
      tblMyTable.FieldByName('Name').AsString := DBgrid6.Columns[4].Field.Value;
      tblMyTable.FieldByName('Zimmername_s').AsVariant := DBgrid6.Columns[5].Field.Value;
      tblMyTable.Post;
    end;
    except
      Application.MessageBox('Es ist ein Fehler aufgetreten.' + chr(13) + 'Möglicherweise existriert ein gewählter '
                              + 'Eintragg bereits.','Fehler',MB_OK or MB_ICONEXCLAMATION);
    end;
  tblMyTable.Close;
end;
Die zuletzt (aktuell) angewählte Zeile wird geschrieben, danach bekomme ich (logischerweise) ´ne
Key Violation, da die Prozedur bis zum erreichen von DBGrid6.SelectedRows.Count versucht die gleichen Daten -> Key
in die Tabelle zu schreiben. Hat jemand ´ne abhilfe? Kann ich da was über die Bookmark-List machen?
Die zu schreibenden Daten stehen ja leider nicht in einer festen Tabelle...
Vielen Dank, Philipp
"What I cannot create, I do not understand."
-Richard P. Feynman
  Mit Zitat antworten Zitat