Id in database

di il
10 risposte

Id in database

Ciao
ho creato un piccolo database in cui nella voce Id inserisco man mano un numero. Ora vorrei modificarlo attraverso una routine che cliccando sul pulsante nuovo mi cerca l'id mancante.
Cioè se tra gli indici ho
1
2
4
5
7
8

quando vado a clliccare nuovo mi inserisca nella casella Id il numero 3.
Grazie

10 Risposte

  • Re: Id in database

    1) non è che abbia molto senso
    2) è assolutamente "costoso" fare quanto chiedi, giacchè ti tocca fare un ciclo che controlla l'esistenza di buchi un record alla vota
    3) in generale non si fa mai
  • Re: Id in database

    Sicuro che stai utilizzando VB6? O Access?

    Comunque, non ha alcun senso.

    Se spieghi come stai realizzando e come mai sei arrivato a quella soluzione, si può indicare una strada più adatta.
  • Re: Id in database

    Si tutte le operazioni vengono eseguite con routine scritte in VB6, con i dati salvati su un file mdb.
    Funziona tutto perfettamente, ho soltanto il problema di inserire io manualmente l'Id. Vorrei trovare un modo che automaticamente mi trova il primo Id libero.
  • Re: Id in database

    C'è un motivo particolare per cui vuoi farlo?

    Comunque ti basta selezionare tutti gli id e fare un ciclo per ogni riga e controllare se c'è un "buco" (col record successivo)
  • Re: Id in database

    Si, è importante farlo altrimenti devo controllare ogni volta.
    Se avete una routine che riesce a far questo risolverei un bel grattacapo.
  • Re: Id in database

    Il codice lo devi scrivere tu, fai una Select e scorri i record fino ad individuare la posizione. A lungo andare diventa una cosa molto pesante e, sinceramente, continuo a non vederne la necessità.
  • Re: Id in database

    Non ti conviene usare "il PRIMO id libero", ma "il PROSSIMO id libero".

    Questo ti risolve tutti i problemi:

    1) per sapere quale e' il PROSSIMO id libero, basta che ti tieni un contatore incrementato ogni volta che lo usi
    2) l'ordine degli ID coincide con l'ordine temporale. Se vuoi "futtizare" l'ordine temporale,
    2.1) il valore dell'ID non ti interessa tanto ordini su con campo data
    2.2) se vuoi evitare problemi legali, non risolvi comunque il problema.

    Ricuperare gli ID non ti fa risparmiare sul numero massimo di ID utilizzabili. Supponendo che l'ID sia un intero a 32 bit (valore massimo maggiore di DUE MILIARDI), e ti serve un ID al secondo, li finirai nell'Aprile 2086 (duemila OTTANTASEI). Direi che sarai bello che morto e sepolto .
  • Re: Id in database

    Ho scritto il codice e sembra che funziona.
    Potete darci un'occhiata e magari darmi un consiglio per poterlo implementare meglio.
    il codice:
    Public Function TrovaId()
    j = 1
       For I = 0 To ListaId.ListCount - 1
             If j = I + 1 Then
                If j = ListaId(I) Then
                   j = j + 1
                Else
                  txt_id.Text = j
                End If
             Else
                txt_id.Text = j
                Exit Function
             End If
                txt_id.Text = j
       Next I
    End Function
  • Re: Id in database

    andreas91 ha scritto:


    Ho scritto il codice [cut]
    Almeno abbi la decenza di rispettare il REGOLAMENTO.
  • Re: Id in database

    Hai ragione. Scusa
Devi accedere o registrarti per scrivere nel forum
10 risposte