![]() |
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?
|
Re: Feld an den Anfang einer Tabelle hinzufügen
ja da bin ich mir sicher.
ich habe die ja durch
Delphi-Quellcode:
geschlossen.
table1.active:=false
table2.active:=false |
Re: Feld an den Anfang einer Tabelle hinzufügen
Dann weiß ich leider auch nicht weiter. :oops:
|
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? |
Re: Feld an den Anfang einer Tabelle hinzufügen
Zitat:
|
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: |
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. |
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