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
 
 » Demo 08:28
 » Dhoine 08:27
 » gigamiki 08:27
 » petropank 08:27
 » ligand17 08:26
 » zartie 08:26
 » JE Jacaw 08:25
 » Wolf 08:24
 » b0b3r 08:24
 » DJopek 08:12
 » rainy 08:04
 » Sebek 08:00
 » exmac 07:59
 » cVas 07:44
 » Dexter 07:43
 » Gniew 07:42
 » DYD 07:32
 » steve 07:31
 » mr-owl 07:29
 » Kenny 07:25

 Dzisiaj przeczytano
 41138 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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

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