Ciao a tutti.
Ho questo problemino: inserisco un record nella mia tabella, e immediatamente dopo recupero l'ultimo ID con "SELECT MAX(ID) FROM TABELLA".
Solo che mi recupera il penultimo ID, e non quello appena inserito. Come è possibile?
Ciao a tutti.
Ho questo problemino: inserisco un record nella mia tabella, e immediatamente dopo recupero l'ultimo ID con "SELECT MAX(ID) FROM TABELLA".
Solo che mi recupera il penultimo ID, e non quello appena inserito. Come è possibile?
Prova a fare così:
codice:SELECT MAX(ID) FROM TABELLA order by ID desc
Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!
così mi da errore perchè manca la funzione di aggregazione,
comunque non va lo stesso. Da sempre il peunultimo.
Ho pensato anche che magari trascorre troppo poco tempo tra la scrittura del record e la immediata lettura, quindi i dati non sono ancora scritti quando vado a fare il "SELECT MAX(ID)"...
sto vaneggiando?
E' strano...vediamo il codice della pagina.
Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!
usa @@IDENTITY
Ribadisco:
Originariamente inviato da maximum
...vediamo il codice della pagina.
Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!
ecco il codice, scusate il ritardo...
codice:sql="INSERT INTO TABLE (cliente, destinazione) VALUES ('"&cliente&"', '"&destinazione&"') set Command1 = Server.CreateObject("ADODB.Command") Command1.ActiveConnection = conn Command1.CommandText = sql Command1.Execute() Set rec_lastID = Server.CreateObject("ADODB.Recordset") rec_lastID.ActiveConnection = conn rec_lastID.Source = "SELECT MAX(ID) AS NUM FROM TABLE" rec_lastID.Open() lastID = rec_lastID("NUM")
Prova così:
codice:sql="INSERT INTO TABLE (cliente, destinazione) VALUES ('"&cliente&"', '"&destinazione&"') set Command1 = Server.CreateObject("ADODB.Command") Command1.ActiveConnection = conn Command1.CommandText = sql Command1.Execute() Set rec_lastID = Server.CreateObject("ADODB.Recordset") strSql = "SELECT MAX(ID) AS NUM FROM TABLE" rec_lastID.Open strSql, conn lastID = rec_lastID("NUM")
Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!
è pazzesco, anche così pesca sempre il penultimo![]()