![]() |
Datenbank: TurboDB • Zugriff über: über Dataset
Von DBGrid mit BatchMove einzelne Datensätze kopieren?
Hallo Delphifreunde,
habe eine Quell-Tabelle über ein DBGrid angezeigt. Sind ca. 100 Datensätze. Im Grid kann ich die einzelnen Zeilen markieren. Jetzt möchte ich über BatchMove diese markierten Datensätze in eine zweite, leere Ziel-Tabelle (hat die gleiche Struktur) übertragen. Leider kopiert mir BatchMove immer alle Datensätze und nicht die markierten Wo mache ich da einen Fehler? Ich hoffe, mir kann geholfen werden. Besten Dank für jeden Hinweis!! LINGNeu |
Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?
Hallo,
BatchMove kennt nur die Datasets, die Markierung ist aber ein Feature des Grids. Um dein Problem mit BatchMove zu lösen kannst du vor dem Aufruf von BatchMove.Execute die Schlüssel der markierten Datensätze zwischenspeichern und diese Schlüssel für eine Filterung (OnFilterRecord) benutzen. BatchMove honoriert dann die Filtereinstellung. Alternativ kannst du dir mal das TurboSQL-Statement INSERT INTO ... SELECT anschauen. Du musst zwar immernoch den Umfang deiner Selektion feststellen, aber immerhin ist SQL zukunftsträchtiger als die Komponente TBatchMove. Grüße vom marabu |
Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?
@marabu,
vielen Dank für Deine Hinweise. SQL kommt nicht in Frage, da ich keine Ahnung davon habe und die Applikation ganz klein ist. Da werde ich mich mal an die Arbeit machen, Deinen BatchMove-Tipp umzusetzen. Habe zwar noch keinen Peiler (bin kein DB-Profi) wie ich die Schlüssel vom DBGrid abspeichere, aber vielleicht finde ich was in der Hilfe. Wenn Du noch Lust hast, kannst Du mir vielleicht einen Tipp dazu noch geben. Ansonsten nochmals besten Dank. ciao LINGNeu |
Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?
Zitat:
|
Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?
@mkinzler
danke Dir für den Tipp. Ich hab mir auch vorgenommen, mich mit diesem Thema zu beschäftigen. Hatte früher mal was mit dBase zu tun und da denke ich, werde ich das schon irgendwie lernen. Nur kann ich das momentan nicht, da die kleine Datenselektion bis Anfang der Woche fertig werden muss, da es für eine Freundin ist und die braucht die Sache. Bis jetzt habe ich auch noch nicht gefunden, wie man die markierten Datensätze im DBGrid auswertet. Es gibt zwar folgenden Code, da bekomme ich aber einen Hinweis, das BookmarkValid nicht definiert ist.
Delphi-Quellcode:
Schöne Grüsse
for i := 0 to YourGrid.SelectedRows.Count-1 do begin
if BookmarkValid (TBookmark(YourGrid.SelectedRows.Items[i])) then begin GotoBookmark (TBookmark(YourGrid.SelectedRows.Items[i])); {Tu_Was_Mit_Daten;} end; end; LingNeu |
Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?
Es handelt sich hier um eine Methode der TDataSet-Klasse. Es müsste also irgendwo
Delphi-Quellcode:
stehen oder du schreibst
with <DataSet> do
Delphi-Quellcode:
<DataSet>.BookmarkValid
|
Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?
@mkinzler
Du bist Super! :kiss: So funktioniert die Sache wirklich. Ein sehr guter Hinweis. Merci nochmals LingNeu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz