TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Access - sprawdzanie czy numer mieści się w zakresie. , Soulfly 13/07/12 12:41 Mam tabelę i w niej 2 pola, \"nr od\" i \"nr do\". Jak sprawdzić wpisując kolejny zakres numerów, czy wpisywany zakres nie koliduje z poprzednimi wpisami.
Przykład:
nr od: 1 nr do: 242
nr od: 1043 nr do: 1483
itd.
Wprowadzam kolejny zakres np.: nr od 2 nr do 102
Jak sprawdzić czy ten nowy zakres nie jest w konflikcie z poprzednimi wpisami.delete dead.letter del dead.letter
dele dead.letter mc - O ile wiem, nie załatwisz tego ani walidacją rekordu ani nie wymusisz constraintami , bwana 13/07/12 16:59
generalnie widzę dwa podejścia:
1. Procedurę (trigger), która przed zapisaniem rekordu sprawdzi, czy nie ma kolizji zakresów między tym co zapisujesz w transakcji a tym, co już jest w bazie - wbrew pozorom w zależności od bazy danych to jest całkiem ładne pole do nasadzenia głupot. Jak to dokładnie zrobić w Access - nie wiem.
2. Uznać, że użytkownik ZAZWYCZAJ się nie pierdyknie. Napisać kwerendę, która wyłapie ewentualne przypadki błędów i okresowo zaglądać do jej wyników - jeśli zwróci jakieś błędne zakresy, to należy podnieść jakość danych - słowem - skorygować błędy w tabeli.
Procedura (1) w postaci ogólnej powinna wyglądać tak (nie jest to jedyny sposób, rzecz jasna):
Wyzwalacz: dla każdego wiersza nowego lub każdego wiersza w którym ulega modyfikacji "nr od" lub "nr do":
- zablokować całą tabelę dla zapisów
- sprawdzić, czy istnieje w tabeli taki wiersz inny niż wstawiany właśnie lub modyfikowany, że zakresy od i do się przecinają
- przepuścić rekord i odblokować tabelę lub odblokować tabelę i zgłosić błąd (w zależności od wyniku sprawdzenia opisanego wyżej)
Jak to się sprawdzi w VBA w Accessie - nie mam pojęcia, bo np. nie wiem czy w Accessie jest w ogóle spełniony ACID, czy jest blokowanie rekordów/tabel, wreszcie - czy jest (już) możliwy w tej bazie wielodostęp."you don't need your smile when I cut
your throat" |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|