AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Kopieren aus DBGrid1 in DBGrid
Thema durchsuchen
Ansicht
Themen-Optionen

Kopieren aus DBGrid1 in DBGrid

Ein Thema von Dieter11 · begonnen am 22. Apr 2009 · letzter Beitrag vom 30. Apr 2009
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
mkinzler
(Moderator)

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 28. Apr 2009, 22:20
Komsich, eigentlich müsste beides vom Typ TBytes sein
Markus Kinzler
  Mit Zitat antworten Zitat
Dieter11

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 28. Apr 2009, 22:50
Das dachte ich auch.
Der Pointer springt nur nicht auf den markierten Datensatz sondern nur auf den 1.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 28. Apr 2009, 22:51
Welche Delphiversion?
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#34

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 29. Apr 2009, 14:01
Hallo,

mach mal ganz am Anfang (vor der for-Schleife)

DBGrid1.SelectedRows.Refresh;
Heiko
Heiko
  Mit Zitat antworten Zitat
Dieter11

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 29. Apr 2009, 19:58
Hallo,
DBGrid1.SelectedRows.Refresh; hat nichts gebracht.
Ich nutze die Delphi Version: 2007

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#36

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 29. Apr 2009, 20:17
Hallo,

stimmen denn die SelectedRows.Count mit den tatsächlich
markierten Zeilen überhaupt überein.

Nimm doch zur Not völlig separate Queries zum DB-Update.
Ich habe DBGrid nie benutzt.


Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 29. Apr 2009, 20:26
Ich finde es irgendwie komisch, dass
Zitat:
DBGrid1.DataSource.DataSet.GotoBookmark(DBGrid1.SelectedRows.Items[i]);
fehlerhaft sein soll
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#38

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 29. Apr 2009, 20:47
Hallo,

ist es nicht
das ist aus der Hilfe zu SelectedRows -> Beispiele

DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(DB Grid1.SelectedRows.Items[i]));

klar hätte man auch statt DBGrid1.DataSource.DataSet
das direkte AdoQuery nehmen können.

Die Hilfe bezieht sich aber AFAIK auf die BDE
(wobei TDataSet ja BDE-unabhängig ist)


Heiko
Heiko
  Mit Zitat antworten Zitat
Dieter11

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 29. Apr 2009, 20: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
mkinzler
(Moderator)

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 29. Apr 2009, 20:56
Zitat von Delphi-Hilfe:
Anmerkung: Unidirektionale Datenmengen unterstützen keine Bookmarks. Wenn Sie GotoBookmark für eine solche Datenmenge aufrufen, ändert sich der aktive Datensatz nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 20:46 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