Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: butik_slubice w Luty 19, 2021, 12:28:25
-
Dzień dobry,
Próbuję dodać pracownika do istniejącego już kontrahenta. Niestety sfera nie umożliwia dodanie telefonów w KhPracownik więc dodaje wszelkie innfomację za pomocą sfery a resztę próbuję robić updatami i tak:
Kontrahent kontrahentTmp = subiekt.KontrahenciManager.WczytajKontrahenta(SymbolKontrahenta);
KhPracownik pracownikKh = (KhPracownik)kontrahentTmp.Pracownicy.Dodaj("");
pracownikKh.Imie = Pracownik.Imie;
pracownikKh.Nazwisko = Pracownik.Nazwisko;
pracownikKh.Email = Pracownik.EMail;
pracownikKh.Stanowisko = Pracownik.Stanowisko;
int pracownikId = pracownikKh.ObiektId;
kontrahentTmp.Zapisz();
Działa bez problemów następnie wykonuję:
update adr__Ewid SET adr_Telefon = @Telefon where adr_IdObiektu = @PracownikId and adr_TypAdresu = 12
insert into tel__Ewid (tel_Id, tel_IdAdresu, tel_Faks, tel_Rodzaj, tel_Nazwa, tel_Numer, tel_Podstawowy, tel_SMS) values
((select MAX(tel_Id)+1 from tel__Ewid), (select adr_id from adr__Ewid where adr_TypAdresu = 12 and adr_IdObiektu=@PracownikId), 0,1, 'telefon', @telefon, 1,0)
insert into tel__Ewid (tel_Id, tel_IdAdresu, tel_Faks, tel_Rodzaj, tel_Nazwa, tel_Numer, tel_Podstawowy, tel_SMS) values
((select MAX(tel_Id)+1 from tel__Ewid), (select adr_id from adr__Ewid where adr_TypAdresu = 12 and adr_IdObiektu=@PracownikId), 0,1, 'telefon2', @telefon, 0,0)
Wszystko działa, jednakże przy próbie dodania nowego pracownika już bezpośrednio w Subiekt otrzymuję komunikat:
"Błąd zapisu do bazy danych. Zapis danych spowodowałby naruszenie integralności danych"
zapewne powinienem jeszcze wykonać jakieś inserty (adr_Historia?, ins_Slad?) lub dla Id skorzystać z sekwencji(ale nie mogę znaleźć jak). W pomocy nic nie znalazłem, na forum też szukałem.
Czy ktoś z Państwa miał podobny problem?
-
Czy ktoś z Państwa miał podobny problem?
Wiele osób, również na tym forum, w tym dziale, odpowiedź była zawsze ta sama - błędnie są nadawane identyfikatory tabel, zobacz jak robi to program i zrób tak samo.
-
Zajrzyj to tabeli ins_ident - tam się dowiesz co popsułeś :)