Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Tabellenabfrage in eine neue Tabelle kopieren (https://www.delphipraxis.net/14963-tabellenabfrage-eine-neue-tabelle-kopieren.html)

harald71 19. Jan 2004 10:16


Tabellenabfrage in eine neue Tabelle kopieren
 
Hallo an alle,

ich hab folgendes Problem. Ich muss meine Anwendung von BDE auf ADS umstellen. Bisher hab ich ein batchmove verwendet, um Daten in eine Tabelle zu verschieben. Jetzt muss ich das ganze anders lösen, da batchmove nicht unterstützt wird.

Ich hab eine Userform, auf den man ein Datumsbereich wählen kann. Über eine Sql-Abfrage filter ich die Daten aus: Select n1, n2, n3 from test where Datum >= von. Jetzt möchte ich eine neue Tabelle erstellen, die oben ermittelten Daten vom Select-Befehl aufnimmt. Leider weiß ich nicht so recht, wie ich es machen soll. Ich hab leider noch keinerlei Ahnung über die Arbeit mit SQL-Querries.

Für schnelle Hilfe wäre ich sehr dankbar.

Robert_G 19. Jan 2004 10:26

Re: Tabellenabfrage in eine neue Tabelle kopieren
 
Am einfachsten wäre es so:
SQL-Code:
CREATE TABLE NewTest As
  SELECT n1, n2, n3
  FROM test
  WHERE Datum >= :iVonDT
In Delphi sieht das dann so aus:

Delphi-Quellcode:
  Query.Close;
  Query.SQL.Text :=
    'CREATE TABLE NewTest As' + #10 +
    ' SELECT n1, n2, n3' + #10 +
    ' FROM test' + #10 +
    ' WHERE Datum >= :iVonDT';
  Query.Prepare;
  Query.ParamByName('iVonDT').AsDate := DeinDatum;
  Query.ExecSQL;

harald71 19. Jan 2004 10:46

Re: Tabellenabfrage in eine neue Tabelle kopieren
 
Danke für die schnelle Antwort,

leider bin ich gerade nicht am AP um es zu testen. Eine Frage hab ich aber noch:

Wie kann ich es machen, dass er die Werte in eine schon bestehende Tabelle schreibt? Ich hatte es mal vor ein paar Tagen probiert, hat leider nicht geklappt. Deshalb wollte ich eine neue Tabelle erstellen. Vorhin hab ich erfahren, dass die Tabelle nicht wie bisher gelöscht werden soll, sondern die Datensätze angehängt werden sollen.

Gruß

Robert_G 19. Jan 2004 11:02

Re: Tabellenabfrage in eine neue Tabelle kopieren
 
SQL-Code:
INSERT INTO NewTest
  SELECT n1, n2, n3 
  FROM test
  WHERE Datum >= :iVonDT
Dabei müssen die Spaltendefinitionen der Abfrage mit denen der Tabelle "kompatibel" sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz