hust500
10th December 2008, 14:37
Hallo zusammen,
ich realisiere eine Schnittstelle mit einem Lagerverwaltungssystem über Oracletriggerung (Oracle 10g). Beim Füllen einer BAAN-Tabelle erhalten die in BAAN unsichtbaren Felder (Referencecounter) t$refcntd und t$recntu jeweils mit dem Wert 0 (hier liegen auch keine Referenzen).
Die Routine funktioniert ohne Fehlermeldungen.
Will ich aber über die General Table Maintenance einen Satz löschen, so wird der Befehl ohne Fehlermeldung einfach nicht ausgeführt. Danach ist ein Blättern zwischen den Datensätzen nicht mehr möglich. Es erscheint Error 112 (No current record)
Generell verhält sich die Tabelle beim Blättern wie ein Drehrad, welches nach dem letzten Satz wieder den ersten anzeigt.
Nach einem Repair Reference Counter aus Reorganize Tables funktionert die Tabelle wieder normal, bis der Trigger wieder neue Sätze einfügt.
Wie sind t$refcntd und t$recntu zu füllen, so dass der Effekt vermieden wird?
Vielen Dank im Voraus
Elke
Anbei die Routine aus plsql:
insert into ttdflx602100(t$type, t$orno, t$pono, t$srnb,t$date,t$lino,t$tid,
t$refcntd, t$refcntu)
values(1,:new.t$pdno,1,0,sysdate,lino525,tidwe,0,0);
ich realisiere eine Schnittstelle mit einem Lagerverwaltungssystem über Oracletriggerung (Oracle 10g). Beim Füllen einer BAAN-Tabelle erhalten die in BAAN unsichtbaren Felder (Referencecounter) t$refcntd und t$recntu jeweils mit dem Wert 0 (hier liegen auch keine Referenzen).
Die Routine funktioniert ohne Fehlermeldungen.
Will ich aber über die General Table Maintenance einen Satz löschen, so wird der Befehl ohne Fehlermeldung einfach nicht ausgeführt. Danach ist ein Blättern zwischen den Datensätzen nicht mehr möglich. Es erscheint Error 112 (No current record)
Generell verhält sich die Tabelle beim Blättern wie ein Drehrad, welches nach dem letzten Satz wieder den ersten anzeigt.
Nach einem Repair Reference Counter aus Reorganize Tables funktionert die Tabelle wieder normal, bis der Trigger wieder neue Sätze einfügt.
Wie sind t$refcntd und t$recntu zu füllen, so dass der Effekt vermieden wird?
Vielen Dank im Voraus
Elke
Anbei die Routine aus plsql:
insert into ttdflx602100(t$type, t$orno, t$pono, t$srnb,t$date,t$lino,t$tid,
t$refcntd, t$refcntu)
values(1,:new.t$pdno,1,0,sysdate,lino525,tidwe,0,0);