UDT Länge ändern. Daten nicht verlieren

klauserl

Level-2
Beiträge
246
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!
Möchte einen UDT der für eine Rezeptur verantwortlich ist größer machen. Will aber die zur Zeit eingestellten Werte (100 Rezepte) beibehalten. Wie stelle ich es an das ich den UDT größer mache, ohne die aktuellen Daten zu verlieren?
 
Ich mache das immer so:

DB von Online ins PG kopieren.
AWL Quelle von dem DB erzeugen
UDT anpassen, und die Änderungen genau notieren
In der AWL Quelle die neuen Zeilen anlegen und, auch wenn es mühsam ist , in alle Rezepter einfügen.
Darauf achten das die Adressen usw stimmen.
Ist zwar nicht wenig Arbeit, aber meist weniger wie alles abschreiben und neu eingeben,
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Siehe PID, aber ich glaube es reicht, die Definition zu ändern. Danach kommen ja in einer langen reihe die gesicherten Daten. Wenn da welche nicht angelegt sind, bekommen diese die Defaultwerte. Wen man die UDT kürzt, muß man allerdings die Daten, die zuviel sind, auch bei den Werten löschen.

Probiere es am besten einmal vorher mit einem kurzen DB aus!
 
Sollte auch so funktionieren:
- Online DB auf separaten DB sichern um die online Daten zu sichern
- UDT verlängern und DB neu generieren.
- Daten von separaten DB per SFC20 mit Versatz auf neuen DB übertragen.
Sprich:
Altes Rezept 20 Byte, neues Rezept 40 Byte.
Code:
[COLOR=black][FONT=Verdana] // Move DB1.DBX 0.0 Byte 20 > DB2.DBX 0.0 Byte 20[/FONT][/COLOR]
[COLOR=black][FONT=Verdana] // Move DB1.DBx[/FONT][/COLOR][FONT=Verdana][COLOR=blue]20[/COLOR][/FONT][FONT=Verdana][COLOR=black].0 Byte 20 > DB2.DBX[/COLOR][/FONT][FONT=Verdana][COLOR=blue]40[/COLOR][/FONT][FONT=Verdana][COLOR=black].0 Byte 20[/COLOR][/FONT]
Das ganze automatisch in einer Schleife (100 mal) oder manuell ausführen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab da mal was gemacht....

Hab da mal was in meine ToolBox eingebaut (http://www.sps-forum.de/showthread.php?t=40921)

Im Menüpunkt Online gibts nun ein Punkt "DB Struct Resizer". Damit kannst du die aktuellen Daten einlesen, den neuen DB übertragen, und die Daten mit einem größeren Abstand dazwischen zurückschreiben.

Habs getestet und es hat funktioniert, aber trotzem vorher ein Backup machen...
 
Zurück
Oben