Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Einfügen eines neues Feldes in AdoTable (https://www.delphipraxis.net/197546-einfuegen-eines-neues-feldes-adotable.html)

haentschman 16. Aug 2018 05:54

AW: Einfügen eines neues Feldes in AdoTable
 
Moin...:P
Ich kann das so nicht stehen lassen...du willst ja aus den Fehlern lernen. :zwinker:

1. Beschäftige dich mal mit Begriff "Owner" http://docwiki.embarcadero.com/Libra...omponent.Owner
2. Beschäftige dich mit dem Begriff "Parent" (für Komponenten) http://docwiki.embarcadero.com/Libra...Control.Parent
3. Warum eine Table? Man kann das auch mit einer Query machen. Im OI trägt man das SQL ein. Vorteil: Wenn man andere Daten braucht, braucht man nur das SQL zu ändern (Bedingungen hinzufügen) und nicht die Komponente tauschen.

Delphi-Quellcode:
var
  AdoQuery1: TAdoQuery; // Auf Grund der Namensgebung sind das Komponenten auf dem Formular. Diese hällt die Gesamtdaten.
  //AdoConnection: TADOConnection; // wie himutsu schon sagte... "Query.Connection := AdoQuery1.Connection"
 
  Str1: String;
private // Abschnitt in der Form
  Query: TAdoQuery; // nicht auf die Form legen! Das nennt man dynamisch erzeugen. Name egal.

  ...

  if AdoQuery1.FieldList.Find(Str1) = nil then
  begin
    AdoQuery1.Close; // kürzer

    Query := TAdoQuery.Create(nil); // Owner = nil weil du gibst das Objekt selbst frei. (Query.Free)
    try
      Query.Connection := AdoQuery1.Connection;
      Query.SQL.Text := 'ALTER TABLE ' + TableName + ' ADD ' + FieldName + ' INTEGER'; // kürzer...Tablename = AdoQuery1
      Query.ExecSQL;
      // ggf. in try/except wenn man auf die Fehler reagieren will
    finally
      Query.Free;
    end;

    AdoQuery1.Open; // kürzer... Wenn du die Query nicht schließt, reicht ein AdoQuery1.Refresh
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 Uhr.
Seite 2 von 2     12   

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