Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » steve 08:38
 » GLI 08:34
 » okobar 08:27
 » Master/Pe 08:20
 » maddog 08:11
 » Kenny 08:09
 » PeKa 08:08
 » Chrisu 08:07
 » Dexter 08:04
 » NimnuL 08:02
 » Kelso1 08:02
 » Wedelek 07:52
 » dugi 07:38
 » ghost12 07:25
 » alkatraz 07:24
 » Miron 07:16
 » P@blo 07:09
 » Zbyl 07:07
 » DYD 07:06
 » XepeR 07:05

 Dzisiaj przeczytano
 127706 postów,
 wczoraj 92849

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2026
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

  1. 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-2026, TwojePC.PL