5 messaggi dal 29 settembre 2001
Esiste una query o altro sistema che sia comunque semplice e veloce per trovare il primo codice non utilizzato in una tabella, per esempio di clienti.
I codici possono essere qualche migliaio e il primo codice mancante può essere il 10 come il 7456!
Attualmente io eseguo una findfirst per ogni numero a partire da 1, ma quando il buco si trova in alto ci vuole del tempo...
Grazie, Sandro
212 messaggi dal 06 settembre 2002
Non conosco l'applicativo che intendi sviluppare o che comunque crea la tabella con dei buchi (anche se per quanto riguarda la mia esperienza sostituire un codice in anagrafica puo' portare in caso di storici a mischiare x es. un mastrino con l'intestazione di un'altro cliente).
Una possibilita' secondo me non cosi orribile, potrebbe essere quella
di crearsi periodicamente una tabella di buchi... in questo modo il primo record, sara' sempre quello che contiene il primo codice libero.
Una volta usato cancelli il record dalla tabella. Hai da gestire una tabella in piu' ma penso che in velocita' tu possa guadagnare molto rispetto allo scorre il database alla ricerca del primo buco.

Arnoldo
-------
DocLine Service & Networking

Per quanto bravo tu possa essere, nessuno ti dara' mai una pacca sulla spalla e ti dira' che hai fatto un buon programma
3.122 messaggi dal 16 maggio 2002
I tuoi numeri sono tutti positivi? Inserisci allora un record con il valore 0 (che non potrà mai essere cancellato) e prova questa query:

SELECT MIN(numero)
FROM tabella
WHERE (numero+1) NOT IN (
SELECT numero
FROM tabella
)

Estrai "numero", aggiungi 1 e hai il primo codice non utilizzato.
Comunque stacci molto attento, il problema posto da maltese è molto importante.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.