AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Kommando und ADO
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Kommando und ADO

Ein Thema von WS1976 · begonnen am 20. Apr 2007 · letzter Beitrag vom 20. Apr 2007
Antwort Antwort
Seite 2 von 2     12   
WS1976
(Gast)

n/a Beiträge
 
#11

Re: SQL Kommando und ADO

  Alt 20. Apr 2007, 11:45
Hallo,

alzaimar: zu deinen Bemerkungen gebe ich hier keinen Kommentar.

ich hatte ganz klar beschrieben was ich machen wollte, nämlich eine Tabelle kopieren, sonst nichts.
Lösung: select * into Tabelle2 from Tabelle1

Wenn mir noch jemand sagt wie man das ohne Inhalte macht bin ich zufrieden.

Danke
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: SQL Kommando und ADO

  Alt 20. Apr 2007, 11:51
Zitat von WS1976:
alzaimar: zu deinen Bemerkungen gebe ich hier keinen Kommentar.
Zitat von WS1976:
ich hatte ganz klar beschrieben was ich machen wollte, nämlich eine Tabelle kopieren, sonst nichts.
Lösung: select * into Tabelle2 from Tabelle1
Hast du nicht. Nicht nur alzaimer war nicht klar was du genau meinst. Deshalb auch die nachfragen.

Zitat von WS1976:
Wenn mir noch jemand sagt wie man das ohne Inhalte macht bin ich zufrieden.
Und schon wieder hat alzaimar einen Lösungsweg beschrieben. Es könnte natürlich sein das hier wieder Access eigene Wege gehen kann/will umd sowas einfacher zu lösen wovon alzaimer nichts weiß. Jedoch ist die vorgeschlagene Lösung eine allgemeine.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: SQL Kommando und ADO

  Alt 20. Apr 2007, 11:53
Zitat von WS1976:
Hallo,
alzaimar: zu deinen Bemerkungen gebe ich hier keinen Kommentar.
Gut so.
Zitat von WS1976:
ich hatte ganz klar beschrieben was ich machen wollte, nämlich eine Tabelle kopieren, sonst nichts.
Dein Niveau, dein Niveau. Tss, Tss, Tss.

Du hast übrigens *nicht* ganz klar beschrieben, was Du machen wollstest: Du hast von 'COPY' Befehlen gefalselt, aber nicht, WOHIN eine Tabelle kopiert werden soll. Du bist auch nicht auf die Fragen der anderen Teilnehmer eingegangen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL Kommando und ADO

  Alt 20. Apr 2007, 11:54
Ich hatte in #1 schon gefragt wie du das meinst, diese Frage hast du deinerseits ja nie beantwortet.
Du willst also eine neue Tabelle mit der selben Struktur einer anderen anlegen
Markus Kinzler
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#15

Re: SQL Kommando und ADO

  Alt 20. Apr 2007, 11:56
Zitat von WS1976:
Hallo,

alzaimar: zu deinen Bemerkungen gebe ich hier keinen Kommentar.

ich hatte ganz klar beschrieben was ich machen wollte, nämlich eine Tabelle kopieren, sonst nichts.
Lösung: select * into Tabelle2 from Tabelle1

Wenn mir noch jemand sagt wie man das ohne Inhalte macht bin ich zufrieden.

Danke
Entspanne dich.

Das war leider nicht so klar, wie du meinst. Eine Tabelle hast du hier nämlich nicht kopiert, sondern Daten von Tab A nach Tab B geschoben. Ein Kopieren impliziert die Neuanlage der Tabelle(nstruktur), und da hat alzaimar dann recht, da müsste man dann erst ein Kommando zum Erstellen aufbauen.

Hier ein bisserl Code für den Aufbau (evtl. DB2-spezifisch und durchaus noch zu verbessern):

Delphi-Quellcode:
procedure GenerateDDLOfDataset(Dataset: TDataset; DDL: TStrings; Options: TGenerateOptions);
var i: integer;
var Str: string;
var Field: TField;
begin
  //Create-Befehl
  DDL.Clear;

  DDL.Add('CREATE TABLE "SCHEMA"."TABELLE"');
  DDL.Add('(');

  //Alle Felder auflisten
  for i := 0 to Dataset.Fields.Count - 1 do
  begin
    //Feldnamen
    Field := Dataset.Fields[i];

    //nicht sichtbare Felder ignorieren?
    if not Field.Visible and (goIgnoreUnvisibleFields in Options) then
      Continue;

    Str := '"' + Uppercase(Field.FieldName) + '"';

    //Feldtyp
    if Field is TIntegerField then
      Str := Str + ' integer'
    else
      if Field is TFloatField then
        Str := Str + ' double'
      else
        if Field is TStringField then
          Str := Str + ' varchar(' + IntToStr(TStringfield(Field).Size) + ')'
        else
          if Field is TDateField then
            Str := Str + ' date'
          else
            if Field is TTimeField then
              Str := Str + ' time'
            else
              if Field is TDateTimeField then
                Str := Str + ' timestamp'
              else
                if Field is TSQLTimeStampField then
                  Str := Str + ' timestamp'
                else
                  if Field is TMemoField then
                    Str := Str + ' clob(???) logged'
                  else
                    if Field is TBlobField then
                      Str := Str + ' blob(???) logged'
                    else

                      raise Exception.CreateFmt('Feldtyp für Klasse %s unbekannt.', [Field.ClassName]);

    //nicht null?
    if Field.Required then
      Str := Str + ' not null';

    //Letztes Feld? Kein Komma
    if i < Dataset.Fields.Count - 1 then
      Str := Str + ',';

    DDL.Add(Str);
  end;
  DDL.Add(')');
  DDL.Add('IN "USERSPACE1";');
end;
Cu,
Udontknow
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#16

Re: SQL Kommando und ADO

  Alt 20. Apr 2007, 12:21
Hallo,

es funktioniert genauso wie ich oben beschrieben hatte.
select * into Tabelle2 from Tabelle

die Tabelle wird angelegt und der Inhalt mitkopiert.

Danke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:16 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