Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Sapere quale sarà il prossimo ID

    Salve a tutti,
    come è possibile sapere quale sarà il prossimo ID (tipo contatore) di un record?
    Ho provato in diversi modi e sembra funzionare. Almeno fino a quando un record non viene eliminato. Quando ciò avviene, ecco che il sistema non funziona più, o meglio il numero di ID che restituisce non è poi fisicamente quello che viene creato in successione.
    Uso un db MySql, ma penso non faccia differenza da Access in questo contesto.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non puoi saperlo.

    Roby

  3. #3
    Una delle risposte che mai vorremmo sentirsi dire...
    Grazie Roby

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559

    Rendi il campo numerico, sempre chiave, e fai un controllo ogni volta che ne generi uno.
    In questo modo sarà sempre univoco e potrai sapere in anticipo quanto varrà il prossimo...
    Ma è una necessità superabile generalmente.

    Roby

  5. #5
    Il problema è quando cancelli un record.
    Se hai un ID max che è di 24, cancelli il 24 stesso e il 23, poi richiedi il max ID ti restituisce 22, ma se inserisci un nuovo record, il db gli attribuisce l'ID 25 (perchè "sa" che c'erano una volta anche il 23 e il 24).
    Questo mi serve perchè al momento di inserire il record inserisco anche un paio di immagini, che voglio chiamare "numero_del_record.gif" (il nome dell'immagine originale viene cambiato al momento dell'upload).
    Questo perchè se dovessi modificare le immagini (quindi ricaricarne di aggiornate), so come si chiamano le immagini già uploaddate (numero_id.gif) e le posso sostituire con quelle nuove usando lo stesso nome.
    Ma siccome il sistema di rilevamento ID non funziona a dovere... sono fregato.

    Dovrei anzichè chiamare le immagini numero_id.gif, chiamarle con un nome esplicativo e al momento di effettuare un potenziale aggiornamento dell'immagine, richiamare il nome dell'immagine già sul server ed attribuirlo alla nuova immagine (che a questo punto sovrascriverà quella già sul server).

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il sistema funziona bene...
    Inserisci le caratteristiche del record, fai una query con @@IDENTITY, recuperi l'ID appena assegnato e ci nomini le immagini.

    Roby

  7. #7
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Mi accodo a quanto detto da roby; o fai @@IDENTITY o usi LAST_INSERT_ID() nella select successiva all'INSERT.

    Per quanto riguarda il riordino dei numeri, se proprio lo ritieni necessareio usa la seguente sintassi:

    codice:
    OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
    .. nemmeno a dire che si raccomanda questa operazione solo quando necessaria, ad esempio dopo la cancellazione di grandi quantità di dati.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  8. #8
    Ma come dici tu Roby dovrei prima inserire il record, poi recuperare l'ultimo ID inserito con appunto @@IDENTITY (come già avevo visto) e poi in un secondo tempo uploaddare i files ed aggiornare il record già inserito.
    Invece io carico e rinomino le immagini mentre inserisco il record, quindi ancora non so quale valore assumerà l'ID.
    Dico bene?

  9. #9

  10. #10
    Consiglio a questo punto?
    Inserire il record senza immagini e poi creare un altro form solo per inserire le immagini abbinandole a questo punto all'ID del record da aggiornare?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.