AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Einfügen eines neues Feldes in AdoTable

Einfügen eines neues Feldes in AdoTable

Ein Thema von DavidKlimas · begonnen am 15. Aug 2018 · letzter Beitrag vom 16. Aug 2018
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.824 Beiträge
 
Delphi 10.1 Berlin Professional
 
#11

AW: Einfügen eines neues Feldes in AdoTable

  Alt 16. Aug 2018, 06:54
Moin...
Ich kann das so nicht stehen lassen...du willst ja aus den Fehlern lernen.

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;

Geändert von haentschman (16. Aug 2018 um 06:57 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf