AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Feld einfügen

Ein Thema von Eggimaa · begonnen am 28. Jul 2004 · letzter Beitrag vom 28. Jul 2004
Antwort Antwort
Eggimaa

Registriert seit: 17. Jun 2004
15 Beiträge
 
#1

Feld einfügen

  Alt 28. Jul 2004, 14:30
Ich hab da mal wieder ein hübsches problemchen..
Datenbank in Paradox..
Bei mehreren hundert Kunden schon im Einsatz..
Und jetzt..
Ich muss ein neues Feld in die bei den Kunden bereits bestehenden Datenbanken einfügen.

Wie mach ich das?

mit
if not Assigned (tblAdressen.FindField('NEW_FIELD'))
mach ich die Abfrage... und das funktioniert..

Und wie weiter?
ich möcht ja jetzt das NEW_FIELD in der Tabelle anfügen.

Danke für eure Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: Feld einfügen

  Alt 28. Jul 2004, 14:36
...schau dir mal den sql-begriff "alter table" an, damit kann man die struktur ändern!
gruß rené
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#3

Re: Feld einfügen

  Alt 28. Jul 2004, 14:36
Hallo Eggimaa,

ich glaube, das wurde hier schon mehrfach diskutiert.

Ich nutze dazu eine kleine Prozedur:

Code:
procedure TFAllgUP.AppFld(tab : TTable; fldname : string; fldtyp : TFieldType; fldsize : integer);
var i:Integer;
    alterTabellenName:String;
    ztab, qtab : TTable;
begin
  tab.Active := false;
  qtab := TTable.Create(self);
  ztab := TTable.Create(self);
  try
    qtab.DatabaseName := tab.DatabaseName;
    qtab.TableName := tab.TableName;
    qtab.SessionName := SessN;
    qtab.Active := true;

    ztab.DatabaseName := tab.DatabaseName;
    ztab.SessionName := SessN;
    ztab.TableType := ttParadox;
    ztab.TableName := '_tmp_' + tab.TableName;

    ztab.FieldDefs.Clear;
    for i:=0 to qTab.Fields.Count-1 do
      //Tabellenstruktur übernehmen
      ztab.FieldDefs.Add( qTab.Fields[i].FullName,
                          qTab.Fields[i].DataType,
                          qTab.Fields[i].Size,
                          qTab.Fields[i].Required);
    //neue Felder hinzufügen
    ztab.FieldDefs.Add(fldname, fldtyp, fldsize, false);
    ztab.CreateTable;

    qtab.Active:=false;
    ztab.Active:=false;

    Batchmove1.Mode:=batAppend;
    i := Batchmove1.RecordCount;
    Batchmove1.Source := qtab;
    Batchmove1.Destination := ztab;
    Batchmove1.Execute;
    alterTabellenName:=qTab.TableName;
    s := qtab.SessionName;
    if ztab.SessionName <> s then begin
      if (FindComponent(ztab.SessionName) is TSession)
        then TSession(FindComponent(ztab.SessionName)).Active := false;
    end;
    if (FindComponent(s) is TSession) then begin
      TSession(FindComponent(s)).Active := false;
    end;

    qTab.DeleteTable;
    ztab.RenameTable(alterTabellenName);
    ztab.Active:=False;

  finally; //wird auf jeden Fall ausgeführt, auch bei exit
    qtab.Close;
    ztab.Close;
    qtab.Destroy;
    ztab.Destroy;
  end;
end;
mfg
eddy
  Mit Zitat antworten Zitat
Eggimaa

Registriert seit: 17. Jun 2004
15 Beiträge
 
#4

Re: Feld einfügen

  Alt 28. Jul 2004, 14:57
hi eddy..

danke erst mal..
woher krieg ich SessN ?
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#5

Re: Feld einfügen

  Alt 28. Jul 2004, 15:38
Hallo Eggimaa,

globale Variable

const
SessN : string = 'session1_1';

setzt ein Objekt vom Typ TSession voraus. Du kannst aber auch einfach nur SessN := '' setzen bzw.
die Zeilen mit ".SessionName := " ausdokumentieren.

mfg
eddy
  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 09:55 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