-
Ich kann allerdings einen externen Dienstleister nicht verklickern, dass er die Spalte einfach weglassen oder beim Insert DEFAULT angeben soll, da dieses (wieder mal) nicht standard ist.
Dann leg halt eine View an, in der alle Spalten außer der Identity Spalte und anderen Spalten, die automatisch generiert werden (ab 7.3) definiert sind. Die Inserts erfolgen nicht direkt in die physische Datei/Tabelle (was generell sowieso keine gute Idee ist), sondern über die View.
Woher weißt Du eigentlich dass der Sonderwert DEFAULT nicht Standard ist, könnte es nicht sein, dass andere Datenbanken-Hersteller den DEFAULT einfach nicht integriert haben, da ihre Datenbanken nicht nach Standard funktionieren?
Da du nun auf den Begriff "DEFAULT" beim Insert hinweist stellt sich mir die Frage, wie ich diesen
a) im ILE/RPG
b) beim CPYF
Habe ich bereits in meinem 1. Post gesagt!
Wenn Du einen Satz mit RPG schreibst bleibt das ID-Feld einfach 0 oder wird explizit mit clear initialisiert. Mehr nicht!
Die folgenden 3 Zeilen sind ein Auszug unserer Anwendung aus einer ganz normalen RPG-Prozedur, in der ein Datensatz in eine Tabelle mit Idenitity Column geschrieben wird. (Die Identitity Spalte ist allerdings NICHT mit implicitly hidden definiert)
Code:
Clear GblDSDWACTLOGP.ACID;
Write DWACTLOGF GblDSDWACTLOGP;
Exec SQL Set :RtnId = Identity_Val_Local();
Beim CPYF habe ich bereits gesagt, dass man mit *MAP/*DROP kopiert, also, dass die Spalte erst gar nicht übergeben wird. Sollte man jedoch mit CPYF in eine Datei mit Identity Column kopieren wollen und die Spalte ist vorhanden und man will die Original-Werte beibehalten, führt man zunächst einen ALTER TABLE aus und konvertiert GENERATE ALWAYS in GENERATE BY DEFAULT. Nach dem Kopieren wird zurückgestellt. Man sollte allerdings dann den Anfangs-Wert für die ID im Anschluss einstellen.
Was die Defintion der Identity Spalte als Implicitly Hidden angeht.
Führ doch einfach die folgenden Satements aus und schau Dir das Ergebnis an:
Code:
Create Table YourSchema.myTable
(MyInt Integer Not NULL Default 0,
MyChar VarChar(10) not NULL default '')
;
Commit;
Insert into YourSchema.MyTable
Values(100, 'AAA'), (200, 'BBB'), (300, 'CCC')
;
Commit;
Create Table YourSchema.MyTableX
(MyInt Integer Not NULL Default 0,
MyId Integer Generated Always as Identity IMPLICITLY HIDDEN,
MyChar VarChar(10) not NULL Default '');
Commit;
Select * from YourSchema.Mytablex;
Select MyId, a.* from YourSchema.MyTablex a;
Insert into YourSchema.MyTableX
Select * from YourSchema.MyTable;
Commit;
Select MyId, a.* from YourSchema.MyTablex a;
Delete from YourSchema.mytable;
Commit;
Insert into YourSchema.myTable
Commit;
Select * from YourSchema.mytablex;
Ich lasse mich gerne überzeugen wenn du mir eine Lösung bringst, die folgende Bedingung erfüllt:
- sichtbare Identity-Spalte
- generate always (also unabhängig davon ob das Feld mit oder ohne Inhalt angegeben wurde)
Wie wär's mit ausprobieren?
Birgitta
Similar Threads
-
By dibe in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 11-11-16, 09:59
-
By Tonazzo in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 15-10-15, 22:36
-
By KingofKning in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 18-05-15, 13:09
-
By Willi1 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-05-02, 08:38
-
By lorenzen in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 21-03-01, 13:44
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks