Newsgroup: it.comp.www.asp
Titolo: Ultimo record inserito

Come faccio a sapere qual'è l'ultimo record inserito in un database access
dopo un'istruzione INSERT senza dover fare un'altra query di tipo SELECT con
condizione WHERE?
E' possibile con una query di tipo annidato?
Grazie
Ciao, luca

 condizione WHERE?
Ma... ma...
O usi INSERT o usi SELECT, non puoi usarle insieme nella stessa query
Se stai inserendo dei dati, allora hai gia' quelli relativi all'ultimo
record, devi semplicemente fare attenzione a come usi le variabili nella
pagina ASP.
Se invece hai bisogno dell'ultimo record inserito dopo un po' (comunque dopo
l'esecuzione dello script che ha inserito i dati) l'unica cosa che mi viene
in mente e' un campo "Date" che riporti MM/GG/AAAA/hh:mm:ss.mmm (Giorno,
mese, anno, ore, minuti, secondi, e millesimi di...) che viene riempito per
default dal database con la data e l'ora corrente.
Quindi l'ultimo record inserito e' quello che compare nella select
SELECT top 1 * FROM tabella ORDER BY data_inserimento DESC
Ciau
Andrea

 condizione WHERE?
puoi fare così: (leggi articolo)
http://freeasp.html.it/articoli/view_articolo.asp?id=32
--
CIAO!
Gusher

"Luca" ha scritto:
| Come faccio a sapere qual'č l'ultimo record inserito in un database access
| dopo un'istruzione INSERT senza dover fare un'altra query di tipo SELECT
| con condizione WHERE?
Prova cosě:
[sql INSERT]
Set RS_LastID = Server.CreateObject("ADODB.Recordset")
RS_LastID.open "SELECT max(nome_campo-ID) as last_id FROM
nome_tabella",Conn,3
  Response.Write RS_LastId("last_id")
RS_LastId.Close:Set RS_LastId=Nothing
--
Antonio G.
Web Site: 
www.antoniog.it
E-mail: antonio_...@SPAMhotmail.com

 
http://freeasp.html.it/articoli/view_articolo.asp?id=32
si ma lui vuole fare una query non utilizzare il metodo addnew...
secondo me con access ti tocca fare una select... magari "select top 1
campo_id from tabella order by campo_id desc"
bai
--
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
Le tue scelte sono scommesse. Come quelle di chiunque altro.

 campo_id from tabella order by campo_id desc"
bhč, che c'č di male nel utilizzare il metodo AddNew di ADO?
...prende 2 piccioni con una fava ^^
altrimenti con una select appena dopo una insert... nessuno ti garantisce
che sia effettivamente l'ultimo inserito.
--
CIAO!
Gusher

L'unico metodo che vedo di "male" in tutto questo è la gestione dei record
disconnessi del vecchio ADO che francamente fa un po schifo :)
Io, dal canto mio, preferisco sempre utilizzare o una stored procedure,
oppure inserire un campo datetime nella mia tabella con la data e l'ora
dell'inserimento, dopodiche mi rifaccio la select con i campi che ho appena
inserito e con la stessa data ed ora, ed ho trovato il recordset che mi sono
appena inserito.
Certo, se qualcuno mette i miei stessi dati, alla stessa ora ed allo stesso
minuti allora me ne frega poco che non sia _veramente_ l'ultimo record
inserito :)
Ciao
--
Alessandro
UGIdotNET - 
http://www.ugidotnet.org

 inserito :)
La mia paura č che accada proprio quello, ed essendo i dati che vado ad
inserire importanti non vorrei cambiare quelli di un'altra persona.
Cmq, leggendo un post successivo a questo credo di aver risolto il problema,
perchč ho vistto che mi supporta la procedura SELECT  @@IDENTITY anche con
database Access e connessione Jet.
Grazie a tutti


Moderatore di it.comp.www.asp - .NET MVP
http://www.aspitalia.com/
 Enjoy the .NET community!
http://www.dev2dev.it/
 La rete ha connesso nuove particelle!

 pagina.
....spe'.
Mi sa che non ho capito di cosa si sta parlando.
Se io sto per salvare (invocare il famigerato metodo "update" sul mio
recordset), so gia' qual'e' l'ultimo record inserito, perche' ho ancora i
dati appena inseriti in memoria e dopo aver usato il famigerato addnew ho
anche i valori relativi ai campi che non ho inserito (null, default vari e
la GUID della primary key).
E' un po' piu' difficile se uso una stringa di inserimento (ma posso sempre
componentizzare il tutto) e l'esecuzione del comando direttamente sulla
connessione (pratica che non mi piace, ma talvolta e' utile) e a voler
strafare posso componentizzare il tutto, in modo da avere una sorta di
portinaio che inserisce/aggiorna i dati in un DB a partire da connessione,
nome della tabella, PK e un dictionary con i nomi dei campi da
modificare/inserire. Pero' sapevo che non e' possibile inserire e
selezionare nello stesso tempo.
Devo sempre eseguire due operazioni: prima inserisco, poi seleziono
l'ultimo, no?
Ciau
Andrea

 l'ultimo, no?
esatto.
