InfoDok - error: nie można dodać zduplikowanego klucza do FK
Witam ponownie,
mam ogromną prośbę o pomoc:
Próbuję dodać dokument w Symfonii Forte za pomocą obiektu InfoDok w następujący sposób (próbowałem wielu przeróbek):
Kod:
#include "fkutil.sci"
#include "dbnames.sci"
InfoDok dok
dok.bZap = DbOpenRok("zapisy", indeksRoku(), true) //FN_BUF_DOK, dbOpenZapBase(indeksRoku(), ZRODLO_BUFOR, true)
dok.bDok = DbOpenRok("dokumenty", indeksRoku(), true) //FN_BUF_UDOK dbOpenDokBase(indeksRoku(), ZRODLO_BUFOR, true )
dok.bKsie = DbOpenRok("dokumenty", indeksRoku(), true) //"dok.InsRec()" / FN_BUF_UDOK dbOpenDokBase( indeksRoku(), ZRODLO_BUFOR, true ) //DbOpenRok("buf_dokum", a_rok, true) //dbOpenDokBase( indeksRoku(), ZRODLO_KSIEGI, true )
dok.begin(1)
dok.SetField(0, "skrot", "WB")
dok.SetField(0, "nazwa", "DP/2015/08")
dok.SetField(0, "tresc", "Treść dokumentu")
dok.SetField(0, "datawpr", "2015-08-11")
dok.SetField(0, "datadok", "2015-08-11")
dok.SetField(0, "dataOper", "2015-08-11")
dok.Insert(1)
dok.next(1)
dok.SetField(1, "opis", "bla bla")
dok.SetField(1, "kwota", 1002)
dok.SetField(1, "strona", 0)
dok.SetField(1, "synt", 100)
dok.SetField(1, "pozycja", 0)
dok.Insert(1)
dok.next(1)
dok.SetField(1, "opis", "xxx")
dok.SetField(1, "kwota", 1002)
dok.SetField(1, "strona", 1)
dok.SetField(1, "synt", 200)
dok.SetField(1, "pozycja", 0)
dok.Insert(1)
dok.next(1)
//---------------------
dok.SetField(1, "kwota", 1001)
dok.SetField(1, "strona", 0)
dok.SetField(1, "synt", 100)
dok.SetField(1, "pozycja", 1)
dok.Insert(1)
dok.next(1)
dok.SetField(1, "kwota", 1001)
dok.SetField(1, "strona", 1)
dok.SetField(1, "synt", 200)
dok.SetField(1, "pozycja", 1)
dok.Insert(1)
dok.InsRec()
//ZAMYKAMY DB
DbClose(dok.bZap)
DbClose(dok.bDok)
DbClose(dok.bKsie)
Niestety wywala mi błąd jak ten w załączeniu tj. że coś jest z wywołaniem funkcji "dok.InsRec()".
Próbowałem zamiast nazw tabel zapisów i dokumentów wstawić "buf_zapisy" i "buf_dokum", ale to z kolei powoduje błąd po stronie bazy danych (coś z duplikowaniem klucza)...
Bardzo proszę o wskazanie błędu - za co z góry dziękuję.