Post
#1
|
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
By dodać nowy wiersz (produkt) do bazy, przed procesem wprowadzania danych, muszę pobrać numer id, który dany rekord otrzyma.
Pobieram go prostym zapytaniem MAX (id) +1. Później juz tylko przesyłam ten numer, aż do momentu dodania nowego produktu. Rozwiazanie takie ma jednak wadę - możliwe jest, że w trakcie gdy jeden użytkownik wprowadza dane, inny rozpocznie ten samą czynność i otrzyma ten sam numer id. Stąd pojawia sie konieczność wprowadzenia mechanizmu rezerwowania numerów, czyli oznaczania, które numery id są właśnie wykorzystywane. Zrobiłem to na zasadzie osobnej tablicy, zawierającej kolumny [i]id_wprowadzanego_produktu i data [i] Jednak mam problem. Nie wiem jak pobrać numer wiersza, dla którego nie istnieje jeszcze produkt i który nie jest zarezerwowany, lub rezerwacja jest "przestarzała" A może macie jakieś inne rozwiazania? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
I o to chodziło Dzięki Ci wielkie.
Wraz z połączeniem z tablą buforu (w celu zachwania spójności w kolejnosci produktów) osiagnąłem zamierzony cel. W ten sopsób można osiagnąć to, czego nie można było wyciagnać przy pomocy MAX(id) - wiedzałem że to nie o to chodzi - ale brak było lepszego pomysłu. Jeszcze raz th'x |
|
|
|
DeyV buforowanie id 26.03.2003, 10:45:24
It's_me dlaczego nie dajesz autonumerowanie na ID ? 26.03.2003, 11:19:45
DeyV Oczywiście że "dajesz". Jednak nie chcę dodawać pr... 26.03.2003, 11:26:44
dragossani Może tak:
Na początku skryptu dodajesz nowy rekord... 26.03.2003, 12:02:38
dragossani Jeśli chodzi o puste wpisy przy przerwaniu transak... 26.03.2003, 12:05:36
DeyV Rzeczywiście - zastosowanie transakcji mogłoby być... 26.03.2003, 12:29:25
dragossani Pamiętaj, że wynik zapytania SELECT MAX(id)+1 FROM... 26.03.2003, 13:02:41 ![]() ![]() |
|
Aktualny czas: 8.08.2026 - 21:37 |