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 1 von 5  1 23     Letzte »    
Dieter11

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

Kopieren aus DBGrid1 in DBGrid

  Alt 22. Apr 2009, 21:08
Datenbank: MS Access 2007 • Version: 2007 • Zugriff über: ADO
Hallo Zusammen,

ich versuche Daten aus einem Grid in ein 2. Grid zu kopieren:

Delphi-Quellcode:
procedure Tfrm_Testformular.DBGrid1DblClick(Sender: TObject);
var
  currentID: Integer;

begin

  with dm_Nails4You_Artikel do
  begin

    with ADOQuery_Artikel do
    Begin

       currentID := AdoQuery_Artikel.FieldValues['id'];
       ShowMessage('CurrentID: ' + IntToStr(CurrentID));

       SQL.Text := 'INSERT INTO Preisliste(ID_Artikel, Bezeichnung, VK_Netto, VK_Brutto) SELECT Artikel.ID, Artikel.Bezeichnung, Artikel.VK_Netto, Artikel.VK_Brutto FROM Artikel WHERE Artikel.ID = 17';
       Parameters.ParseSQL(SQL.Text, true);
       Parameters.ParamValues['ID'] := currentID;

       ExecSQL;
    End;
  end;
end;
Das Ergebnis aus ShowMessage ist immer CurrentID: 1.
Anschliessend erhalte ich die Meldung: ADOQuery_Artikel: Parameter 'ID' nicht gefunden.

Hinter dm_Nails4You_Artikel steckt je ein ADOQuery und ein DataSource beider Tabellen. Die zu kopierenden Felder der Tabellen sind identisch.

Weiss jemand Rat?

Gruss

Dieter

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

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 22. Apr 2009, 21:22
Ich würde zuerst den select machen und dann in der Schleife den entsprechenden Insert
Markus Kinzler
  Mit Zitat antworten Zitat
Dieter11

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 23. Apr 2009, 19:43
Ich habe das SQL-Statement mit festen ID (also z.B. 16) in Access getestet, da läuft es ohne Probleme.

Das Problem liegt m.E. im Parameter.

Wenn ich die Prozedure so ändere, funktioniert diese auch.

Delphi-Quellcode:
procedure Tfrm_Testformular.DBGrid1DblClick(Sender: TObject);

var
  currentID: Integer;

begin

  with dm_Nails4You_Artikel do
  begin

    with ADOQuery_Artikel do
    Begin
       SQL.Text := 'INSERT INTO Preisliste(ID_Artikel, Bezeichnung, VK_Netto, VK_Brutto) SELECT Artikel.ID, Artikel.Bezeichnung, Artikel.VK_Netto, Artikel.VK_Brutto FROM Artikel WHERE Artikel.ID = 16';

       ExecSQL;
    End;
  end;
end;
Füge ich aber die Parameter ein, erhalte ich die Fehlermeldungen.

[edit=mkinzler]Delphi-Tag eingefügt. das nächste Mal bitte selber machen! Mfg, mkinzler[/edit]
[edit=mkinzler]BBCode reaktiviert Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 23. Apr 2009, 19:48
Zeig mal den nicht funktionierenden Code
Markus Kinzler
  Mit Zitat antworten Zitat
Dieter11

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 23. Apr 2009, 19:59
Delphi-Quellcode:
procedure Tfrm_Testformular.DBGrid1DblClick(Sender: TObject);

var
  currentID: Integer;

begin

  with dm_Nails4You_Artikel do
  begin

    with ADOQuery_Artikel do
    Begin

      currentID := AdoQuery_Artikel.FieldValues['id'];
// ShowMessage('CurrentID: ' + IntToStr(CurrentID));

       SQL.Text := 'INSERT INTO Preisliste(ID_Artikel, Bezeichnung, VK_Netto, VK_Brutto) SELECT Artikel.ID, Artikel.Bezeichnung, Artikel.VK_Netto, Artikel.VK_Brutto FROM Artikel WHERE Artikel.ID = :Currentid';
       Parameters.ParseSQL(SQL.Text, true);
       Parameters.ParamValues['ID'] := currentID;

       ExecSQL;
    End;
  end;
end;
[edit=mkinzler]Das mit dem Formatieren war ernst gemeint Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 23. Apr 2009, 20:02
Der Parameter heisst auch Currentid
Parameters.ParamValues['Currentid'] := currentID;
Markus Kinzler
  Mit Zitat antworten Zitat
Dieter11

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 23. Apr 2009, 20:24
Danke.
Jetzt habe ich folgendes Phänomen:
Es wird immer nur der 1. Datensatz aus der Tabelle "Artikel" in die Tabelle "Preisliste" kopiert, unabhängig vom angeklickten Datensatz.
Beim 2. Versuch, erhalte ich folgende Fehlermeldung: "Could not convert variant of type (Null) into type (Integer).
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 23. Apr 2009, 20:27
Verwendet ADOQuery_Artikel die Artikeltabelle, in die du einfügen willst? Dann kannst du auf das 2. Select ja verzichten und direkt die Werte des aktuellen DS einfügen lassen.
Markus Kinzler
  Mit Zitat antworten Zitat
Dieter11

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 23. Apr 2009, 20:30
Es sind unterschiedliche Tabellen. Nur die im Select angegebenen Datenfelder sind identisch.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Kopieren aus DBGrid1 in DBGrid

  Alt 23. Apr 2009, 20:33
Also handelt es ich um 3 Tabellen?
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 22:01 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