Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209

    Ordinare tutti gli ID di una tabella

    Ciao a tutti.
    come scritto nel titolo devo riordinare tutti gli id di una tabella.
    Questo lo devo fare poichè più utenti hanno inserito dei dati, solo che tra nuove aggiunte, doppioni o cancellazioni, la tabella non ha più gli ID ordinati.
    L'ID deve essere composto dall'anno di riferimento, quindi 2011, più tre cifre che si incrementano ogni volta (Quindi 2011000, 2011001, 2011002, 2011003,...).
    Seguendo alcuni post ho cercato di creare un codice che selezionasse tutti i record e con un'altra interrogazione eseguo l'update.
    Solo che quando faccio partire il file mi va in loop.
    Qualcuno sa spiegarmi il motivo? Grazie mille.
    codice:
    
    <%	
    	Set Conn=Server.CreateObject("ADODB.Connection")
    	
    	Conn.Open (strConn)
    	sql = "SELECT ID FROM progettiFormativi"
    	
    	anno = Year(Date)
    	char1 = 0
    	char2 = 0
    	char3 = 0
    	
    	set rs = Conn.execute(sql)
    	if not(rs.eof) then
    		do while not rs.eof
    			if ((char1<>0) AND (char2<>0) AND (char3<>0)) then
    				if (char3<>9) then
    						char3 = char3 + 1
    				else if(char2<>9) then
    						char3 = 0
    						char2 = char2 + 1
    					else
    						char3 = 0
    						char2 = 0
    						char1 = char1 + 1
    					end if	
    				end if
    			end if
    			id=rs("ID")
    			strId = anno & a & b & c
    			sql = "UPDATE progettiFormativi SET ID = '" & strId &"' WHERE ID='" & id & "'"
    			Conn.execute(sql)
    		loop
    	end if
    	Set rs = Nothing
    	Conn.Close
    	Set Conn = Nothing
    
    	response.Redirect("vediPianificazione.asp?azione=editId&esito=corretto")
    %>

  2. #2
    altre tabelle del db fanno riferimento a questo id?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Sì, un'altra tabella...

  4. #4
    e allora rinumerare gli id è un mezzo suicidio, ti perdi tutti i riferimenti...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Quello è l'ultimo problema. i riferimenti sono pochi.
    Il mio problema, ora come ora è riuscire a evitare il loop...

  6. #6
    Originariamente inviato da dtomasini
    Quello è l'ultimo problema. i riferimenti sono pochi.
    se sei sicuro tu....

    comunque, invece di reinventare le addizioni incrementando e gestendo le tre cifre parziali (ovvero, come complicarsi la vita inutilmente ), fa' le addizioni alla maniera normale (counter=counter+1), e poi paddi il risultato a sinistra con degli zeri ( padcounter=right("000"+CStr(Counter),3) )

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209


    Tipo una roba così?
    codice:
    
    <%	
    	Set Conn=Server.CreateObject("ADODB.Connection")
    	
    	Conn.Open (strConn)
    	sql = "SELECT ID FROM progettiFormativi"
    	
    	anno = Year(Date)
    	counter = 0
    	set rs = Conn.execute(sql)
    	if not(rs.eof) then
    		do while not rs.eof
    			
    			id=rs("ID")
                            padcounter=right("000"+CStr(counter),3)
    			strId = anno & padcounter
    			sql = "UPDATE progettiFormativi SET ID = '" & strId &"' WHERE ID='" & id & "'"
    			Conn.execute(sql)
                            counter=counter+1
    		loop
    	end if
    	Set rs = Nothing
    	Conn.Close
    	Set Conn = Nothing
    
    	response.Redirect("vediPianificazione.asp?azione=editId&esito=corretto")
    %>

  8. #8
    ma riporti tutto al 2011?

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    sì. Non chiedermi come mai.... Mi è stato chiesto di fare così. In pratica è organizzato per vedere quali dati sono disponibili per il 2011

  10. #10
    allora devi cambiare anche la select!

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.