Einzelnen Beitrag anzeigen

Alex.G

Registriert seit: 30. Aug 2011
31 Beiträge
 
Delphi 7 Enterprise
 
#12

AW: INSERT INTO SELECT ohne Spaltenliste

  Alt 21. Okt 2011, 08:34
Als erstes mache ich ein SELECT * ... über eine ADOConnection zum ersten Server. Danach über eine zweite Connection ein INSERT INTO ...
Leider funktioniert das ganze nicht richtig. Mit diesem Quelltext...
Delphi-Quellcode:
  for i := 0 to qryMaster.Recordset.RecordCount-1 do
  begin
    columnList := '';
    valList := '';
    qryMasterExec.SQL.Text := 'SELECT * FROM '
      + qryMaster.Recordset.Fields.Item['TABLE_NAME'].Value;
    qryMasterExec.Open;
    qryMasterExec.Requery;
    qryMasterExec.Recordset.MoveFirst;

    for n := 0 to qryMasterExec.Recordcount-1 do
    begin
      for t := 0 to qryMasterExec.RecordCount-1 do
      begin
        columns[t] := qryMaster.Recordset.Fields.Item['COLUMN_NAME'].Value;
        values[t] := qryMasterExec.Recordset.Fields.Item[columns[t]].Value;
      end;
      qryMasterExec.Recordset.MoveNext;
    end;
    for e := 0 to High(values)-1 do
    begin
      columnlist := columnlist + columns[e] + ' ';
      valList := valList + values[e] + ' ';
      mSQL.Lines.Add('INSERT INTO '
        + qryMaster.Recordset.Fields.Item['TABLE_NAME'].Value
        + ' ('+columnList+') VALUES'
        + ' ('+valList+')'
        );
    end;
    qryMaster.Recordset.MoveNext;
  end;
...bekomme ich leider nur Insert's wie:
Code:
INSERT INTO Rechnung (ID ) VALUES (4 )
INSERT INTO Rechnung (ID ID ) VALUES (4 4 )
INSERT INTO Rechnung (ID ID ID ) VALUES (4 4 4 )
INSERT INTO Rechnung (KID ) VALUES (2 )
INSERT INTO Rechnung (KID KID ) VALUES (2 2 )
INSERT INTO Rechnung (KID KID KID ) VALUES (2 2 2 )
INSERT INTO Rechnung (PID ) VALUES (1 )
INSERT INTO Rechnung (PID PID ) VALUES (1 1 )
INSERT INTO Rechnung (PID PID PID ) VALUES (1 1 1 )
INSERT INTO Kunde (ID ) VALUES (3 )
INSERT INTO Kunde (ID ID ) VALUES (3 3 )
INSERT INTO Kunde (ID ID ID ) VALUES (3 3 3 )
INSERT INTO Kunde (Name ) VALUES (Plaum               )
INSERT INTO Kunde (Name Name ) VALUES (Plaum               Plaum               )
INSERT INTO Kunde (Name Name Name ) VALUES (Plaum               Plaum               Plaum               )
INSERT INTO Kunde (Vorname ) VALUES (Jürgen              )
INSERT INTO Kunde (Vorname Vorname ) VALUES (Jürgen              Jürgen              )
INSERT INTO Kunde (Vorname Vorname Vorname ) VALUES (Jürgen              Jürgen              Jürgen              )
INSERT INTO Kunde (Ort ) VALUES (Siegen              )
INSERT INTO Kunde (Ort Ort ) VALUES (Siegen              Siegen              )
INSERT INTO Kunde (Ort Ort Ort ) VALUES (Siegen              Siegen              Siegen              )
INSERT INTO Produkt (ID ) VALUES (2 )
INSERT INTO Produkt (ID ID ) VALUES (2 2 )
INSERT INTO Produkt (ID ID Ort ) VALUES (2 2 Siegen              )
INSERT INTO Produkt (Name ) VALUES (Lenovo R500          )
INSERT INTO Produkt (Name Name ) VALUES (Lenovo R500          Lenovo R500          )
INSERT INTO Produkt (Name Name Ort ) VALUES (Lenovo R500          Lenovo R500          Siegen              )
INSERT INTO Produkt (Kommentar ) VALUES (Lenovo Thinkpad Laptop                            )
INSERT INTO Produkt (Kommentar Kommentar ) VALUES (Lenovo Thinkpad Laptop                            Lenovo Thinkpad Laptop                            )
INSERT INTO Produkt (Kommentar Kommentar Ort ) VALUES (Lenovo Thinkpad Laptop                            Lenovo Thinkpad Laptop                            Siegen              )
(Alle Daten sind ausgedacht!)
Was mache ich falsch?
  Mit Zitat antworten Zitat