AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Feld in Paradox-Tabelle vorne einfügen ! Möglich ??
Thema durchsuchen
Ansicht
Themen-Optionen

Feld in Paradox-Tabelle vorne einfügen ! Möglich ??

Ein Thema von hacki · begonnen am 2. Mai 2003 · letzter Beitrag vom 3. Mai 2003
Antwort Antwort
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#1

Feld in Paradox-Tabelle vorne einfügen ! Möglich ??

  Alt 2. Mai 2003, 17:11
Hey, hab wieder mal ein Problem. Ich habe in meiner Datenbankanwendung vor, ein Schlüsselfeld an den Anfang einer jeden Tabelle zu stellen. Dies wäre mir sehr wichtig, da ich damit eine Menge Entwicklungsarbeit einsparen kann. Wie kann ich das tun bzw. kann man das überhaupt ?

Ich habe bisher nur Felder angehängt:

Code:
ALTER TABLE Uebungen ADD UebRegNameSpace CHARACTER(20)
Ach ja, es handelt sich um eine Paradox Datenbank auf die ich über die BDE zugreife.

Hilfe wäre echt super...

grüsse
hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 2. Mai 2003, 18:48
Hallo Hacki,

wenn du die Tabelle hast, bzw. vom Kunden bekommen kannst, wäre es am einfachsten, diese Änderung direkt mit der Datenbankoberfläche durchzuführen. Dazu wählst du Tools | Tabellenoperation... | Umstrukturieren, wählst die Tabelle, fügst das Feld ans Ende hinzu und verschiebst es mit der Maus einfach an den Anfang. Anschließend kannst du dann noch einen Index erstellen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#3
  Alt 2. Mai 2003, 21:12
Hallo MrSpock,

das ist hier leider nicht möglich. Das Programm, um das es sich handelt ist vielfach im Einsatz. Es handelt sich dabei um Übungssammlungen für Volleyballtrainer. Nun interessieren sich aber auch andere Sportarten für das Programm und ich muß in die Übungsdatenbank vorne weg ein Schlüsselfeld haben, über den ich die jeweilige Sportart filtern kann. So ist es möglich immer das gleiche Programm zu verwenden und den Filter entsprechend zu setzen, je nachdem mit welchen Sportart man gerade arbeitet (ein Anwender könnte mehrere Sportarten verwenden, z.b. Sportlehrer).

Wenn das Tool es kann, müßte es doch auch so gehen, ein Feld anzufügen und später nach vorne zu schieben, oder ?

grüsse
Hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4
  Alt 3. Mai 2003, 13:53
Hallo Hacki,

möglicherweise funktioniert es mit einem direkten DBI... Funktionsaufruf aus der Unit BDE, aber da bin ich mir nicht sicher. Eine Alternative wäre folgendes. Du erstellst die neue Tabelle, mit dem neuen Feld am Anfang und allen Indices, dann benutzt du BatchMove, um die Daten der alten Tabelle in die neue Tabelle zu schieben. Anschließend benutzt du die Methode RenameTable, um die alte Tabelle umzubenennen und der neuen Tabelle wieder den gewohnten Namen zu geben, damit andere Programme korrekt darauf zugreifen. Damit alle Felder der alten an die korrekte Stelle geschoben werden, füllst du einfach das Mapping Array der BatchMove Komponente aus.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#5
  Alt 3. Mai 2003, 15:34
Hallo MrSpock,

ich habe das mit dem BatchMove mal ausprobiert. BatchMove bricht da ab bzw. läuft auf einen Fehler, wo die Feldertypen nicht übereinstimmen. Wenn ich ein neues Feld vorne weg stelle, läuft BatchMove also sofort auf einen Fehler und nichts passiert. BatchMove bricht mit einer Exception EInOutError ab (I/O Error 123).

Kann man da etwas tun ? Was hat es mit dem Mapping auf sich ?

danke und viele grüsse

hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#6
  Alt 3. Mai 2003, 17:35
Hallo MrSpock,

nun hab ich's. Das Mapping war der Schlüssel. Damit kann ich die Feldnamen mappen, sodaß kein Fehler mehr auftritt.

Super. Die Kopiermethode ist echt klasse.

Danke für die Hilfe

hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#7
  Alt 3. Mai 2003, 19:04
Hallo Hacki,

ich finde die Batchmove Komponente auch sehr nützlich. Sie ist leicht zu bedienen und kann auch benutzt werden, um Tabellen in ein anderes Format zu konvertieren. Das Mapping Array fülle ich in Situationen, wie du sie beschrieben hast, automatisch in einer Schleife über alle Feldnamen, dann vermeidet man Schreibfehler.
Albert
Live long and prosper


MrSpock
  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 18:42 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