AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Von DBGrid mit BatchMove einzelne Datensätze kopieren?

Von DBGrid mit BatchMove einzelne Datensätze kopieren?

Ein Thema von LingNeu · begonnen am 20. Okt 2007 · letzter Beitrag vom 20. Okt 2007
Antwort Antwort
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#1

Von DBGrid mit BatchMove einzelne Datensätze kopieren?

  Alt 20. Okt 2007, 10:18
Datenbank: TurboDB • Zugriff über: über Dataset
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
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?

  Alt 20. Okt 2007, 12:13
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
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?

  Alt 20. Okt 2007, 15:19
@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
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?

  Alt 20. Okt 2007, 18:41
Zitat:
SQL kommt nicht in Frage, da ich keine Ahnung davon habe und die Applikation ganz klein ist.
Die Einarbeitung lohnt sich aber imho trotzdem, auch wenn du auch meinst, daß du es für dieses Projekt nicht brauchst, aber höchstwahrscheinlich beim Nächsten.
Markus Kinzler
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?

  Alt 20. Okt 2007, 19:25
@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:
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;
Schöne Grüsse
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?

  Alt 20. Okt 2007, 19:40
Es handelt sich hier um eine Methode der TDataSet-Klasse. Es müsste also irgendwo with <DataSet> do stehen oder du schreibst <DataSet>.BookmarkValid
Markus Kinzler
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Von DBGrid mit BatchMove einzelne Datensätze kopieren?

  Alt 20. Okt 2007, 19:58
@mkinzler
Du bist Super!
So funktioniert die Sache wirklich.
Ein sehr guter Hinweis.
Merci nochmals
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz