PDA

View Full Version : Erzeugung von Tabellen/Identity Columns



Christian.Hesse
11-01-07, 11:20
Hallo!

Nachdem ich eine Tabelle mit einer Identity Column brauche und diese auch Erfolgreich erzeugt habe, habe ich doch noch ein paar Fragen dazu, die mir vielleicht jemand beantworten kann:

- Kann ich bei mit SQL erzeugten Tabellen auch Field Descriptions angeben wie ich es mit DDS-Files machen kann?
- Gibt es im SQL eine Möglichkeit - ähnlich der DDS - auf eine Spaltendefinition zu referenzieren um bei einer Änderung des Formates einen einzelnen Punkt zum Ändern zu haben?
- Kann ich - wider anderer Versuchs-Ergebnisse - vielleicht doch bei einer DDS-erstellten Tabelle nachträglich mit einem ALTER TABLE eine Identity Column definieren?
- Funktionieren Default-Values (Current_Timestamp) auch wenn ich mit Write in RPG in die Tabelle schreibe?
- Gibt es unter RPG noch einen weiteren Weg den Wert der letzten Schreiboperation auszulesen als ein Aufruf der IDENTITY_VAL_LOCAL per embedded SQL?


Vielen herzlichen Dank für eure Mühe!

Viele Grüße

Christian

Fuerchau
11-01-07, 11:33
Mit "label on ..." kannst du der Tabelle und jedem Feld Beschreibungen hinzufügen (separate Anweisung).
Mit "Comment on ..." kannst du je Tabelle und Feld bis 2KB Text anhängen (geht mit DDS nicht).

Referenzierungen auf Felder gibt es in SQL nicht (andere DB's nennen das ggf. Domains).
Ausserdem bringt das Ändern einer Referenzdatei auch nichts solange die anderen Dateien nicht per DDS-Source neu erstellt werden.

ALTER TABLE funktioniert eben nur auf TABLE und nicht auf DDS-Files.
Allerdings unterstützt der CHGPF/CHGLF auch die Angabe einer Quelle, so dass die PF/LF mit erhalt der Daten neu erstellt werden kann.

Wenn in RPG/LE ein Write kodiert wird, müssen sämtliche Felder, die durch die F-Bestimmung definiert sind, einen gültigen Wert beinhalten.
Defaults kennt RPG/LE nicht.

Defaults funktionieren nur dann, wenn
a) über eine LF geschrieben wird, die diese Felder nicht enthalten
b) ein SQL-Insert ausgeführt wird, der diese Felder nicht benennt

Da in RPG/LE nach einem Write noch alle Feldinhalte zur Verfügung stehen, gibts nichts auszulesen.
Schreibe ich über eine LF nur einen Teil der Felder (s.o.) muss ich natürlich über irgendeine Möglichkeit verfügen, mittels einer 2. Datei auf die anderen Felder wieder lesend zuzugreifen.
Ggf. hilft hier noch die Status-DS der F-Bestimmung in der die Satznummer der letzten Operation genannt wird.
Mit dieser kann ich dann auf die PF ohne Key chainen.