AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Feld an den Anfang einer Tabelle hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Feld an den Anfang einer Tabelle hinzufügen

Ein Thema von DBman · begonnen am 1. Jul 2003 · letzter Beitrag vom 13. Jul 2003
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#11
  Alt 3. Jul 2003, 12:24
Dann fällt mir nur ein, dies in der Datenbank Oberfläche zu ttun, die bei Delphi mit ausgeliefert wird. Oder eben Paradox in die Tonne treten.
  Mit Zitat antworten Zitat
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#12
  Alt 3. Jul 2003, 13:13
Nein ich will das ja nicht in der Datenbankoberfläche machen das soll ja automatisiert werden und Paradox trete ich auch nich in die Tonne....
Habe mir dazu folgendes überlegt:

Ich könnte eine neue Tabelle erzeugen mit der 1.Spalte "Zaehler" , Typ AutoInc.

Dann füge ich den Inhalt von Table1 dieser neuen Table2 hinzu , so dass ich eine neue Tabelle habe mit der 1. Spalte Zaehler.

Delphi-Quellcode:
begin
 with Table2 do
 begin
 Active := false;

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

  { Dann die Felder in der Tabelle beschreiben }
  with FieldDefs do begin
    Clear;
      with AddFieldDef do begin
        Name := 'Zaehler';
        DataType := ftAutoInc; //Erzeugen eines Zählerfeldes
        Required := True;
       end;
  end;
   CreateTable;

 end;
table2.AddIndex('','Zaehler',[ixPrimary]);
table1.open;
table2.open;
 Batchmove.Mode:=batAppend;
 Batchmove.Execute; ///<-- Hier tritt der Fehler auf
table1.close;
table2.close;
..Allerdings tritt dabei der Fehler bei Batchmove.Execute auf:
Übersetzungsfehler , Wert liegt nicht im gültigen Bereich...

Ich könnte mir nur vorstellen , dass rumgemeckert wird , weil die Zaehlerspalte ja quasi leer ist( obwohl AutoInc füllt sich doch dann eigentlich automatisch oder?)

Hm vielleicht weiss ja jemand weshalb der Fehler da kommt..
Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#13

hmm,

  Alt 4. Jul 2003, 14:26
was ich jetzt noch immer nicht verstehe, wenn du doch von dbf => Paradox gehst dann ist es doch wurscht wie die Felder in der Paradox angeordnet sind, denn du kannst sie ja beschreiben wie du willst in dem du sie beim INSERT via Name ansprichst !? Oder überseh ich grad was, ausser dass du SQL nicht verwenden willst ?
  Mit Zitat antworten Zitat
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#14
  Alt 5. Jul 2003, 18:47
wie denn beim insert?

Also meine Tabelle sieht so aus :
NAME TEL ORT

und ich will dass sie so aussieht :

ZAEHLER NAME TEL ORT


Wenn du mir den Delphibefehl dazu sagen kannst um das zu bewerkstelligen bin ich glücklich

Das muss aber im Code passieren , ich will das nicht mit der Datenbankoberfläche manuell machen.
Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#15

hmm,

  Alt 5. Jul 2003, 20:11
also bei einem SQL Statement ist es doch wurscht ob du machst

INSERT INTO tabelle (xyz, abc, edk, kzw) VALUES (1,2,3,4)

oder

INSERT INTO tabelle (kzw, xyz, abc, edk ) VALUES (4,1,2,3)
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#16
  Alt 5. Jul 2003, 21:58
Hallo DBman,

dein Code ist gut. Du musst nur noch bei der BatchMove Komponente den MappingsArray füllen. Dort legst du fest, welche Spalten der neuen Tabelle zu welcher Spalte der alten Tabelle zugeordnet wird. Mappings kannst du entweder zur Designtime oder zur Laufzeit setzen. Wenn du es zur Laufzeit füllst, kannst du es einfach über eine Schleife erreichen, die über die Feldnamen läuft.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#17

Re: Feld an den Anfang einer Tabelle hinzufügen

  Alt 7. Jul 2003, 15:59
Hm.. so ganz hab ich das noch nicht verstanden wie ich das mit dem Mappings-Array machen soll.
Da kann man ja eintragen welche Spalte welcher Spalte in der neuen Tabelle entsprechen soll.Aber was bringt mir das da jetzt?

Also konkret:
Tabelle1 : Ich habe ja die tabelle NAME ORT PLZ vorliegen.
Tabelle2 : und möchte dass der 2. Tabelle ZAEHLER , die erste tabelle hinten dran gehängt wird , so dass dann die tabelle lautet :

ZAEHLER NAME ORT PLZ

Aber was hab ich dann von dem Mappings Array? Mit dem Code den ich da gepostet hatte gabs jedenfalls Fehler..
Hm.

Über Antworten wäre ich wie immer sehr dankbar
Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#18

Re: Feld an den Anfang einer Tabelle hinzufügen

  Alt 7. Jul 2003, 16:25
Hallo DBman,

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   i   : Integer;
   fldName : String;
begin
   Table1.Open;
   BatchMove1.Mappings.Clear;
   for i := 0 to Table1.FieldCount -1 do
   begin
      fldName := Table1.Fields[i].FieldName;
      BatchMove1.Mappings.Add(fldName +'=' +fldName);
   end;
   Table1.Close;
end;
Mit dem oben gezeigten Code füllst du den Mappingsarray. Das erste Feld (Zähler) erhält keine Daten aus der alten Tabelle, sondern wird automatisch gefüllt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
DBman

Registriert seit: 31. Mai 2003
Ort: nähe hannover
77 Beiträge
 
#19

Re: Feld an den Anfang einer Tabelle hinzufügen

  Alt 9. Jul 2003, 14:13
Hallo Mr.Spock,
mit deinem Code habe ich aber auch noch Probleme:

Ich erhalte den Fehler , dass die Felder gar nicht vorhanden sind.
(also jetzt NAME , ORT ..usw...).

Aber die existieren in der anderen Tabelle ja auch noch gar nich die Felder...

wie mache ich das denn jetz nu?

Denn die Dinge , die wir erst lernen müssen , bevor wir sie tun , lernen wir beim Tun. - Aristoteles
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#20

Re: Feld an den Anfang einer Tabelle hinzufügen

  Alt 9. Jul 2003, 14:29
z.B. wie im Code-Beispiel zu TTable.CreateTable in der OH!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 20:09 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