Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: tkbit w Listopad 27, 2018, 16:25:45
-
Witam,
mam aplikację napisaną w C# do pobierania zamówień ze sklepu internetowego przez API i zapisywaniu ich jako ZK. Do identyfikacji kontrahentów używam adresów e-mail, z bazy pobieram sobie za pomocą sql ID kontrahenta i jeśli się znajduje to pobieram obiekt Kontrahent, jeśli nie to tworzę nowy. Tylko mam problem, gdyż w niektórych przypadkach, mimo że znajduje mi ID kontrahenta, nie wczytuje mi obiektu. Poniżej przykładowy kod:
long clientId = this.getClientByEmail(order.client.email); //pobieranie za pomocą sql id klienta na podstawie email, -1 jeśli nie ma
if (this.subiekt.KontrahenciManager.Istnieje(clientId))
{
Helper.Log("Klient istnieje: " + clientId);
try
{
kh = this.subiekt.KontrahenciManager.Wczytaj(clientId);
}
catch (COMException ex)
{
Helper.Log("Błąd wczytywania kontrahenta " + clientId + ": " + ex.Message);
}
}
else
{
kh = this.addClient(order);
}
I w niektórych przypadkach mimo, że metoda Istnieje zwraca true, bo on faktycznie już istnieje i jest powiązany z innymi dokumentami, przy metodzie wczytaj wchodzi Exception "Brak bieżącego rekordu". Przypisywałem również samo clientId i jako zmienną i na sztywno jedno znalezione ID do dokumentu, jednak było podobnie. Czy ktoś miał podobny problem lub wie o co może chodzić? Użyłem wyszukiwarki, jednak dla fraz kontrahenci, wczytaj, istnieje nic nie znalazłem.
-
Podejrzewam uszkodzenie bazy danych/niekompletne dane kontrahentów, należy problem przeanalizować na danych, na których występuje (InsERT lub dobry serwisant).
-
Czegoś takiego się obawiałem. No bo kod jest raczej w porządku, zgodnie z dokumentacją. No nic, popróbuję coś samemu poszukać w bazach, a jak nic z tego nie wyniknie, to chyba faktycznie trzeba się będzie udać po pomoc.