Forum Użytkownikow Subiekt GT
InsERT GT => Subiekt GT => Wątek zaczęty przez: Karłowaty_PL w Lipiec 22, 2016, 15:26:47
-
Witam , podczas aktualizacji subiekta pokazuje błąd:
========================================================================
Aktualizacja podmiotu: Mirek z wersji: 1.2902 do wersji: 1.4402.20.3693 dnia: 2016-07-22 15:15:09
Zapisywanie informacji o początku konwersji
Zastosowano do podmiotu skrypt: C:\Program Files\InsERT\InsERT GT\Skrypty\skrypt1.2902_1.3000.enc
Czas: OdczepianieObiektow 00:00:01
Czas: UsuwanieConstraintow:Check,Default 00:00:10
Czas: OdczepianieConstraintow:PK,FK,Unique 00:00:00
Czas: UsuwanieRegul 00:00:00
Czas: UsuwanieDefaultow 00:00:01
Czas: DodawanieDefaultow 00:00:00
Czas: DodawanieRegul 00:00:00
Czas: PorzadkowanieTypowDanych 00:00:00
Czas: OdczepianieIndexow 00:00:00
Czas: PorzadkowanieTabelek 00:00:06
Czas: PorzadkowanieDanychSlownikowych 00:00:00
Czas: __Update 00:00:00
Czas: DodawanieIndexow 00:00:00
Nie powiodło się wykonanie polecenia:
ALTER TABLE tw__Towar ADD CONSTRAINT
FK_tw__Towar_sl_StawkaVAT1 FOREIGN KEY
(
tw_IdVatZak
) REFERENCES sl_StawkaVAT
(
vat_Id
)
Błąd 0x80040E2F: The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_tw__Towar_sl_StawkaVAT1". The conflict occurred in database "Mirek", table "dbo.sl_StawkaVAT", column 'vat_Id'.
Aktualizacja podmiotu nie powiodła się: 0x80040e2f: The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_tw__Towar_sl_StawkaVAT1". The conflict occurred in database "Mirek", table "dbo.sl_StawkaVAT", column 'vat_Id'.
Przywrócenie podmiotu powiodło się.
-
To prawda. Jak widać dla towarów zostały przypisane stawki VAT, których nie ma w słowniku stawek VAT. Baza danych do sprawdzenia i poprawy.
ps.
Przy okazji popraw dane w profilu.
-
Zewnętrzne narzędzie bez sfery, albo ręczne "grzebanie" w bazie?
-
Przejrzałem bazę, towary mam na 23% tylko jedną pozycję jako Vat odwrócony i w słowniku mam te stawki?
-
Właśnie chciałem spytać czy na kartotece tego nie będzie widać.
Patrzyłeś tylko na towary i usługi aktywne czy nieaktywne również?
-
Na wszystkich jest ok dlatego zastanawiam się co jest nie tak.
-
Spróbuję pomóc ci znaleźć babola. Jeśli nie masz Management Studio do SQL to się zrobi to poprzez zestawienia.
Dodaj 2 zestawienia SQL w subiekcie, nazwij je jak chcesz
nr. 1
SELECT * FROM [sl_StawkaVAT]
to nam wypluje listę stawek vat ze słownika
nr. 2
SELECT distinct [tw_IdVatZak] FROM [tw__Towar]
to wypluje listę stawek używanych przy zakupach. błąd z twojego logu wskazuje, że gdzieś tam siedzi babol
kontrolnie można dodać jeszcze jedno zestawienie:
nr. 3
SELECT distinct [tw_IdVatSp] FROM [tw__Towar]
to wypluje stawki użyte przy sprzedaży
Jeśli jest tak jak sugeruje dkozlowski to w zapytaniu numer 2 powinien pojawić się identyfikator, który nie będzie w zapytaniu nr 1.
Wyniki zestawień wrzuć na forum albo na PW, jak tobie wygodniej.
-
Witam, rzeczywiście po wykonaniu 2 zapytania w kolumnie tw_IdVatZak w pozycji 3 mam identyfikator 67233 ale co dalej?
-
Dalej, jak napisał dkozlowski, trzeba sprawdzić bazę czy nie jest uszkodzona i naprawić.
-
Naprawić czy jest jakieś polecenie do naprawy?
-
SELECT [tw_Symbol],[tw_Nazwa] FROM [tw__Towar] where tw_IdVatZak=67233
To zapytanie powie ci na jakich pozycjach towarowych masz ustawioną tą osieroconą stawkę VAT zakupu. Zapytanie nie rozróżnia czy to towar/usługa i czy pozycja jest aktywna czy nie.
Zrób kopię zapasową bazy, tak na wszelki wypadek. Wejdź normalnie z poziomu subiekta na tą kartotekę towarową i sróbuj poprawić stawkę VAT dla zakupu na tej pozycji (zakładka parametry w edycji towaru), sprawdź tam od razu stawkę sprzedaży.
Jeśli nie masz innych takich niespodzianek w bazie to aktualizacja powinna przejść. Inna sprawa to to, że są takie błędy, które mogę nie wyjść przy aktualizacji tak jak ten. Możesz spróbować w programie serwisowym podmiot -> kontrola danych.
-
Ta edycja towaru może pomóc, ale może się okazać że tylko ukryje problem.
Co do programu serwisowy to nie wykrywa on takich nieprawidłowości.
Nie wykrywa także fizycznych uszkodzeń bazy danych i 99% pozostałych problemów.
Ogólnie mówiąc, prawie nic nie wykrywa.
-
Tak, mam świadomość tego, że program serwisowy jest do duszy i że wiele błędów ma drugie dno i czasem powracają z hukiem. Jak mireczek_81 ma szczęście to będzie po problemie. Tak czy siak powinien się skontaktować ze swoim serwisantem a jak nie to powinien znaleźć takowego.
@cadny Co masz dokładnie na myśli piszą o fizycznym uszkodzeniu bazy? Błąd/uszkodzenie dysku? Jeśli mireczek_81 ma bazę na talerzowcu i jest on uszkodzony to chyba by nie doszedł do etapu aktualizacji danych bo położby się przy tworzeniu backupa?
-
Niekoniecznie. Uszkodzenie bazy może przybierać różne formy. Miałem już w rękach bazy, które były uszkodzone od miesięcy.
Backup się robił i odtwarzał, Subiekt działał, tylko "coś tam nie trybiło". Po sprawdzeniu okazało się z którejś tabeli nie można odczytać części danych.
No i potem okazało się że ostatnie archiwum bez tego uszkodzenia ma mniej więcej rok.
-
Czyli masz na myśli np. jakiś krzak po błędzie zapisu a nie uszkodzone sektory?
-
check database integrity wykryłoby w management studio wykryłoby takie niespodzianki?
-
Bez wątpienia krzak po błędzie, ale czego był to błąd to już nie wiem.
Co do drugiego pytania to już zwyczajnie nie pamiętam, miałem co innego do roboty - zajmowałem się ratowaniem klienta ;)
-
Tak, mam świadomość tego, że program serwisowy jest do duszy...
Nie jest tak ja piszesz, po prostu program serwisowy nie posiada funkcjonalności, które mogłyby pomóc przy problemie z tego wątku. Co robi kontrola danych też nie jest tajemnicą (sprawdza identyfikatory kluczy głównych tabel i usuwa dyspozycje towarów), można sprawdzić samemu, spytać serwisanta, przeczytać na forum.
@cadny Co masz dokładnie na myśli piszą o fizycznym uszkodzeniu bazy? Błąd/uszkodzenie dysku? Jeśli mireczek_81 ma bazę na talerzowcu i jest on uszkodzony to chyba by nie doszedł do etapu aktualizacji danych bo położby się przy tworzeniu backupa?
No właśnie tak nie jest i dlatego uszkodzenia bazy są takie niebezpieczne, potrafią ujawnić się po tygodniach/miesiącach/latach kiedy już nie ma możliwości powrotu do kopii z archiwum. Dlatego należy odpowiednio dbać o bazy danych i sprawdzać je po każdej podejrzanym zdarzeniu.