AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL einfügen mit select
Thema durchsuchen
Ansicht
Themen-Optionen

SQL einfügen mit select

Ein Thema von Privateer3000 · begonnen am 13. Jun 2008 · letzter Beitrag vom 13. Jun 2008
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

SQL einfügen mit select

  Alt 13. Jun 2008, 11:19
Datenbank: mdb • Zugriff über: ado
Hallo,
ich möchte in tabelle 1 werte einfügen die
aus tabelle 2 genommen werden sollen.
Hinzu kommen aber noch andere variablen.
Also kein direktes copy.
Wäre das mit dieser Überlegung möglich?

Delphi-Quellcode:
Datensatz für Select: id1
INSERT INTO tabelle1 (f11,f12,f13,f14...)
       SELECT f21,f22 FROM tabelle2 WHERE id=id1
           VALUES (:IN1,:IN2,:IN3,:IN4)
param...IN1:=edit.text
param...IN2:=f21
...
Leider hab ich nicht wirklich eine Idee, wie das gehen könnte.
Oder ist dies so nicht üblich und ich bin auf dem Holzweg zum Teich?

Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 11:22
Also, etwas in der Art
SQL-Code:
INSERT INTO Tabelle2(Wert1, Wert2)
  SELECT Wert1, Wert2 FROM Tabelle1
  WHERE ID=1000
sollte schon gehen. Nur, was die VALUES sollen, hab ich nicht verstanden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 11:30
Er will ausser den Daten aus dem select in einem Rutsch weitere Werte einfügen.
Das wird so nicht gehen. Man könnte versuchen die Werte als Konstanten in den Select einzubauen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#4

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 11:40
Wenn ich es richtig verstehe dann geht das ganze doch so:

Delphi-Quellcode:
var
  Wert1, Wert2, Wert3 : String;
  a : Integer;
begin
  a := 0;

  with FormDatenmodul.qSQL do
  begin
    close;
    with SQL do
    begin
      clear;
      Add('SELECT x,y,z');
      Add('FROM TABELLE_A');
      Add('WHERE x = 4;');
    end;
    open;
    while not EOF do
    begin
      Wert1 := FieldByname('x').asString;
      Wert2 := FieldByname('y').asString;
      Wert3 := FieldByname('z').asString;

      inc(a);

      with FormDatenmodul.qEINFUEGEN do
      begin
        close;
        with SQL do
        begin
          clear;
          Add('INSERT INTO TABELLE_B');
          Add('(a, b, c, d)');
          Add('VALUES(');
          Add('"'+ Wert1 +'",');
          Add('"'+ Wert2 +'",');
          Add('"'+ Wert3 +'",');
          Add('"'+ IntToStr(a) +'"');
          Add(');');
        end;
        ExecSQL;
        close;
      end;

      next;
    end;
  end;
/ungetestet
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 11:42
Er wollte dies aber in einer SQL-Abfrage machen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 11:44
Zitat von mkinzler:
Er will ausser den Daten aus dem select in einem Rutsch weitere Werte einfügen.
Das wird so nicht gehen. Man könnte versuchen die Werte als Konstanten in den Select einzubauen.
Genau
Ich dachte es mir schon, also werde ich erst die Daten holen und dann einfügen
Schade, wäre auch zu einfach gewesen

Danke an alle
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 11:46
Zitat von DeddyH:
Also, etwas in der Art
SQL-Code:
INSERT INTO Tabelle2(Wert1, Wert2)
  SELECT Wert1, Wert2 FROM Tabelle1
  WHERE ID=1000
sollte schon gehen. Nur, was die VALUES sollen, hab ich nicht verstanden.
Aus diesem Grund schrieb ich ja: kein direktes copy
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 11:47
Moment, wirf die Flinte nicht zu schnell ins Korn. Ich habe das nicht ausprobieren können, aber versuch es mal so:
SQL-Code:
INSERT INTO Tabelle2(Wert1, Wert2, Wert3, Wert4)
  SELECT Wert1, Wert2, :Param1 AS Wert3, :Param2 AS Wert4
  FROM Tabelle1
  WHERE ID=1000
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 15:22
Das werde ich mal probieren
sage dan an dieser stelle bescheid

wird aber erst morgen wieder

danke!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: SQL einfügen mit select

  Alt 13. Jun 2008, 16:12
Das sollte funktionieren. Wies auch nict
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:24 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