Witam
Po odnowieniu naszego parku maszynowego posiadamy kilka stacji, które nie są już używane, ale nadal widnieją na liście hostów zadań MyPDMTools. Chcę usunąć te hosty, aby nie zanieczyszczać już pełnej listy, a zatem w tym celu uruchomić zapytanie SQL w skrypcie VBA.
Zapytanie brzmi: StrSQL = "USUŃ Z DWO. Hosty WHERE dbo. Hosts.HostID = " & N_Host (z N_Host numerem komputera, który chcę usunąć)
Ale to żądanie nie działa, ponieważ inne tabele wspominają o tych "identyfikatorach hostów". Dodaję więc inne zapytania w preambule tego zapytania, co w końcu daje (po prostu kopiuję wiersze zapytania)
StrSQL="USUŃ Z DWO. TaskInstances WHERE dbo. TaskInstances.InitHostID =" & N_Host
StrSQL="USUŃ Z DWO. TaskHosts WHERE dbo. TaskHosts.HostID =" & N_Host
StrSQL="USUŃ Z DWO. Hosty WHERE dbo. Hosts.HostID =" & N_Host
Ale komunikat o błędzie informuje mnie, że pierwsze zapytanie nie może zostać wykonane: "Instrukcja DELETE jest w konflikcie z ograniczeniem REFERENCE "FK_TaskSelection_TaskInstances". Konflikt wystąpił w bazie danych "XXXX", tabela "dbo. TaskSelection", kolumna 'TaskInstanceID' .
Rozumiem, że musiałbym najpierw wyczyścić tabelę TaskSelection, ale nie wiem, jak kierować odpowiednie wpisy (te, które wspominają o TaskInstanceID, który próbuję usunąć?).
Krótko mówiąc, jeśli ktoś ma pomysł lub nawet pełne zapytanie, bardzo by mi to pomogło.
Inne rozwiązanie: może jest coś prostszego niż usuwanie wpisów? Na przykład zastąpić wartość HostID "pustym" identyfikatorem?
Dziękuję za pomoc.
Po rozmowie z visiativ operacja jest naprawdę bardzo prosta: w menedżerze sql wystarczy otworzyć tabelę dbo. Hosts i usuń wiersz odpowiadający komputerowi, który chcesz usunąć. Przetestowane i zweryfikowane!
1 polubienie
Witaj @romain.jouanny ,
Jak więc usunąć bezużyteczne wiersze w tabeli dbo. Hostów? (Uwaga: nie jestem profesjonalistą w SQL Studio...)
Usunięcie linii nie ma żadnego innego wpływu na EPDM (co mogłoby spowodować błędy)??
Dziękuję
Musisz zaznaczyć całą linię (klikając pierwsze puste pole), a następnie prawy przycisk --> usuń.
Według mówcy visiativ, który pokazał mi na żywo, nie ma żadnego wpływu, w najgorszym przypadku, jeśli usuniesz niechcianego hosta, możesz łatwo zadeklarować go ponownie jako hosta za pomocą zwykłej procedury (na komputerze kliknij prawym przyciskiem myszy kulkę EPDM na pasku zadań --> Konfiguracja hosta zadań).
Dziękuję @romain.jouanny za tę opinię.
Więc jeśli wszystko dobrze zrozumiałem, musisz przejść do tabeli dbo. Hosty, kliknij prawym przyciskiem myszy i wybierz "Edytuj 200 pierwszych wierszy",
Stamtąd SQL pokazuje wartości zawarte w tabeli i wystarczy kliknąć prawym przyciskiem myszy na końcu wiersza i wybrać "Usuń"
Czy słusznie?
Przepraszam, że jestem tak denerwujący, ale wolę zakryć plecy przed zerwaniem EPDM...
Dziękuję.
1 polubienie
Tak, dokładnie tak! Rzeczywiście, pominąłem krok "Edytuj 200 pierwszych wierszy".
Nie martwię się o szczegóły, jestem też bardzo ostrożny, jeśli chodzi o dotykanie bazy na żywo!
2 polubienia
Witaj @romain.jouanny
Zacząłem więc dziś rano i próbowałem usunąć starą stację roboczą, która nadal leży na komputerach wymienionych do zadań.
Otrzymałem jednak tę wspaniałą wiadomość:
Wygląda więc na to, że mam do czynienia z twoim początkowym problemem (lub takim, który wygląda bardzo podobnie).
Masz pewność, że nie wykonałeś żadnej dodatkowej pracy w celu usunięcia komputerów z listy dbo. Hostów?? Na przykład usuwanie historii plam lub inne czyszczenie stołu?
Na przykład zmiana liczby rejestracji zadań, jak wyjaśniono w punkcie 5 tutaj: https://www.javelin-tech.com/blog/2020/06/solidworks-pdm-monitor-tasks/ (co logicznie powinno skutkować wyczyszczeniem tabeli dbo.taskinstances ze wszystkich starych zadań i być może odblokowaniem usunięcia starego hosta)
Z góry dziękuję
Witam, rzeczywiście jest to prawdopodobnie spowodowane historią zadań, w której zadanie, które zostało uruchomione w tym poście, nadal się pojawia. Ze swojej strony ograniczam tę historię do ostatnich 400 zadań, co wyjaśniałoby, dlaczego nie miałem tego problemu.
Możesz zacząć od sprawdzenia, czy ten host rzeczywiście pojawia się na liście zadań w konsoli administracyjnej, a następnie usunąć zadania, o których mowa?
W każdym razie przykro mi, że to nie działa dla ciebie, kiedy byłem pewny siebie i powiedziałem ci, żebyś szedł bez strachu :(
Witam
Po zmianie liczby zapisanych zadań, jak wyjaśniono w punkcie 5 tutaj: https://www.javelin-tech.com/blog/2020/06/solidworks-pdm-monitor-tasks/ , (poszedłem do 200 udanych i 200 nieudanych) faktycznie udało mi się usunąć moje stare niechciane hosty.
Należy zauważyć, że ograniczenie liczby udanych i nieudanych rejestracji zadań ma niesamowity wpływ na responsywność listy zadań w narzędziu administracyjnym EPDM. Stał się dla mnie prawie bezużyteczny z czasami dostępu rzędu minuty lub więcej tylko po to, aby wybrać linię w historii i zobaczyć jej właściwości (gdy chciała coś wyświetlić).
Teraz, z listą ograniczoną do 400 wpisów, znajduję doskonale użyteczne narzędzie (uwaga: przed tą modyfikacją parametrów miałem "tylko" 24000 wpisów, co też nie jest ogromne).
Jeszcze raz dziękuję.
1 polubienie
O tak, rzeczywiście, myślę, że to właśnie popchnęło mnie do uporządkowania listy! Dobra wiadomość, jeśli to zadziała!