Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Feld an den Anfang einer Tabelle hinzufügen (https://www.delphipraxis.net/6158-feld-den-anfang-einer-tabelle-hinzufuegen.html)

r_kerber 13. Jul 2003 14:10

Re: Feld an den Anfang einer Tabelle hinzufügen
 
Und Du bist Dir ganz sicher, dass Du die Tabellen-Dateien (name.db) nicht durch ein anderes TTable-Object noch in Benutzung hast?

DBman 13. Jul 2003 14:31

Re: Feld an den Anfang einer Tabelle hinzufügen
 
ja da bin ich mir sicher.

ich habe die ja durch
Delphi-Quellcode:
table1.active:=false
        table2.active:=false
geschlossen.

r_kerber 13. Jul 2003 14:49

Re: Feld an den Anfang einer Tabelle hinzufügen
 
Dann weiß ich leider auch nicht weiter. :oops:

MrSpock 13. Jul 2003 14:51

Re: Feld an den Anfang einer Tabelle hinzufügen
 
Hallo DBman,

manchmal tritt der Fehler auf, weil man in der IDE die Tabellen noch geöffnet hat, indem man schon im OI Active auf True gesetzt hat. Ist das auch bei dir der Fall?

r_kerber 13. Jul 2003 14:56

Re: Feld an den Anfang einer Tabelle hinzufügen
 
Zitat:

Zitat von MrSpock
manchmal tritt der Fehler auf, weil man in der IDE die Tabellen noch geöffnet hat, indem man schon im OI Active auf True gesetzt hat.

Stimmt, das hatte ich ganz vergessen. Ist mir auch schon passiert. :oops:

DBman 13. Jul 2003 15:27

Re: Feld an den Anfang einer Tabelle hinzufügen
 
Ja Mr. Spock irgendwie hat mich das schon weitergebracht :)
Aber jetzt wird komischerweise immer noch bei Table2 rumgemeckert , dass die noch im Gebrauch ist..... hm.
Obwohl ich das im OI nicht auf Active gesetzt hatte...

Naja ich probier nochmal n bissel. :firejump:

DBman 13. Jul 2003 16:36

Re: Feld an den Anfang einer Tabelle hinzufügen
 
Nachdem ich im OI Table1.Active auf false gesetzt hatte funktioniert es jetzt endlich.
Der Code zum hinzufügen einer AutoInc Spalte an den Anfang einer Paradox-Tabelle sieht dann so bei mir aus (vielleicht gehts auch noch eleganter , aber so funktionierts bei mir zumindest) :

Delphi-Quellcode:
procedure TForm1.erzeugeClick(Sender: TObject);
var i:Integer;
    alterTabellenName:String;
begin
Table1.Active:=true;         //Table1 geöffnet
 with Table2 do
 begin
 Active := false;            //Table2 geschlossen

 DatabaseName := 'STM';
 TableType := ttParadox;
 TableName := 'mitZaehler.db';

  { Dann die Felder in der Tabelle beschreiben }
  with FieldDefs do begin
    Clear;
      with AddFieldDef do begin
        Name := 'Zaehler';
        DataType := ftAutoInc;
        Required := True;

for i:=0 to Table1.Fields.Count-1 do
                                //Tabellenstruktur übernehmen
      Table2.FieldDefs.Add( Table1.Fields[i].FullName , Table1.Fields[i].DataType,
                           Table1.Fields[i].Size, Table1.Fields[i].Required);

       end;

  end;
   CreateTable;
 end;


 Table1.Active:=false;
 Table2.Active:=false;

 BatchMove.Mappings.Clear;
for i:=0 to Table1.Fields.Count-1 do
    Batchmove.Mappings.Add(Table1.Fields[i].FullName + '=' +  //Mappingsarray füllen
                           Table1.Fields[i].FullName );

          Batchmove.Mode:=batAppend;
          Batchmove.Execute;

 Showmessage('Table2: ' + Table2.TableName);
 Showmessage('Table1: ' + Table1.TableName);
 alterTabellenName:=Table1.TableName;
 Table1.DeleteTable;
 Table2.RenameTable(alterTabellenName);
 Table2.Active:=False;
 Table2.AddIndex('','Zaehler',[ixPrimary]);

 end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr.
Seite 4 von 4   « Erste     234   

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