Einzelnen Beitrag anzeigen

marabu

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

Re: angeklickte Zeile in DBGrid1 als neuen Eintrag in DBGrid

  Alt 25. Okt 2005, 17:48
Habe mir die Northwind-Demo-Datenbank für ACCESS besorgt. Darin erzeuge ich mir zwei Tabellen ORIGINAL und KOPIE mit (ID, NACHNAME, VORNAME) als Spalten. So wird kopiert mit anschließendem Requery:

Delphi-Quellcode:
const
  SQL_COPY
    = 'INSERT INTO kopie (id, nachname, vorname) '
    + 'SELECT id, nachname, vorname FROM original '
    + 'WHERE id = :id';

procedure TDemoForm.btnCopyClick(Sender: TObject);
var
  id: integer;
begin
  id := ADODataSet1.FieldValues['id'];
  with ADOQuery do
  begin
    SQL.Text := SQL_COPY;
    Parameters.ParseSQL(SQL.Text, true);
    Parameters.ParamValues['id'] := id;
    try
      ExecSQL;
      ADODataSet2.Requery([]);
    except
      on E: Exception do
        ShowMessage(E.Message);
    end;
  end;
end;
Wenn du das Demo-Projekt öffnest, dann musst du in der ADOConnection den Pfad zur Datenbank anpassen. Kannst auch deine eigene eintragen. Die beiden Testtabellen werden beim Programmstart erzeugt und du kannst sie mit dem Drop-Button wieder in den Eimer treten.

Viel Spaß

marabu
Angehängte Dateien
Dateityp: zip adocopy_184.zip (2,6 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat