mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
InfoDok - error: nie można dodać zduplikowanego klucza do FK https://forum.mix-soft.pl/viewtopic.php?f=15&t=6851 |
Strona 1 z 1 |
Autor: | WojtekM [ 2015-09-28, 09:18 ] | ||
Tytuł: | 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ę.
|
Autor: | WojtekM [ 2015-09-28, 11:15 ] |
Tytuł: | Re: InfoDok - error |
I jeszcze taka drobna uwaga: prawdopodobnie błąd leży przy przypisywaniu wartości do zmiennej bDok, bo zgodnie z dokumentacją obiekt powinien wskazywać na otwartą bazę w buforze. Próbowałem to zrobić przez funkcję dbOpenDokBase(indeksRoku(), ZRODLO_BUFOR, true ), ale nie pomaga... Więc pytanie jak otworzyć bazę danych w buforze? |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |