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

Qualcuno mi saprebbe dire come fare per ricercare e visualizzare in una
tabella l'ultimo record memorizzato?
Giusi
--
Posted from 
relay1.inwind.it
 [212.141.53.67] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

tabella l'ultimo record memorizzato?
Partendo dal fatto che un "ultimo" record deve avere un qualche cosa
che lo identifichi come tale (contatore ?), ti basta fare una
query ordinata alla rovescia, cioe' con l'ultimo come primo, e
beccarti il primo record.
SELECT * FROM <tab> ORDER BY <campo> DESC
Davide


Se ObjRS č il tuo ogetto recordset (esempio) il metodo č questo :
ObjRS.Movelast
Praticamente ti posiziona sull'ultimo record del recordset.
Bye


Moderatore di it.comp.www.asp
Sito di supporto: 
http://www.aspitalia.com/newsgroup/icwa.asp
Tutto su WindowsNT? Su 
http://www.aspitalia.com
Professional WAP, per te su 
http://www.aspitalia.com/store/
Impara l'e-conomy su 
http://www.e-conomy.it

Ciao, è possibile ordinare i record per 2 campi?
ad esempio ordinare per nome e per id?
Grazie

ad esempio ordinare per nome e per id?
Of course, ti basta inserire i campi separati da virgola
nella clausola ORDER BY. 
Es.
SELECT * FROM <tabella> WHERE .... ORDER BY Nome, ID
In questo modo verranno prima i nomi uguali. Altrimenti
SELECT * FROM <tabella> WHERE .... ORDER BY ID, Nome
In questo modo tu hai gli ID in ordine (e dopo i nomi).
Davide

Io continuo ad avere grossi problemi pur avendo seguito le vostre
istruzioni!
<%
on error resume next
dim conn
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER=Microsoft Access Driver (*.mdb); DBQ="
&Server.MapPath("/mailing/db.mdb")
dim rs
set rs= Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM mailing ORDER BY ID"
rs.Open SQL, conn
ID = request("ID")
response.write = ID
conn.Close
%>
Errori?
Grazie
Alessandro

response.write = ID
??? response.write = ???
Mi pare che tu abbia le idee molto ma molto confuse. Prova
a leggere un po' di documentazione (per esempio i vari
tutorial su Aspitalia).
Davide

 ??? response.write = ???
Il response.write mi serve perche' voglio che venga visualizzato l'ultimo
record! C'e' un altro modo in cui farlo?
Alessandro

record! C'e' un altro modo in cui farlo?
La domanda non era "response.write", ma "response.write = " 
NOTA: *=* (uguale) ???
In questo modo tu cerchi di assegnare un valore ad una funzione
(metodo) di un oggetto, con immediata segnalazione di errore.
Il comando corretto e' response.write <valoredavisualizzare>
Davide

Ho corretto il tuto cosi' pero' continua a non funzionare!
Suggerimenti?
Grazie
Alessandro
<%
on error resume next
dim conn
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER=Microsoft Access Driver (*.mdb); DBQ="
&Server.MapPath("/mailing/db.mdb")
dim rs
set rs= Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM mailing ORDER BY ID"
rs.Open SQL, conn
response.write ID
conn.Close
%>

Suggerimenti?
Prova cosi':
<%
dim conn
dim rs
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER=Microsoft Access Driver (*.mdb); DBQ="
&Server.MapPath("/mailing/db.mdb")
set rs=conn.Execute("SELECT * FROM mailing ORDER BY ID")
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
response.write rs.Fields("ID")
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
rs.Close
Set rs=Nothing
conn.Close
set conn=Nothing
%>
P.S. ho fatto un po' di pulizia e ordine nel codice, ma la
differenza fondamentale la vedi nella linea indicata.
Davide

Ecco! Era proprio quello che non capivo! come tirare fuori a video il
risultato!
Pero' cosi' mi restituisce il primo valore e non l'ultimo.
Ho provato allora in questo modo:
response.write rs.RecordCount
Pero' mi da' come risultato -1 quindi da quel che ho capito non riesce a
leggere il numero di record!
Come faccio a scorrere la lista fino in fondo?
"SELECT * FROM mailing ORDER BY ID"
Con questa riga li ordino solo ma non vado in fondo se non ho capito male.
Alessandro

Con questa riga li ordino solo ma non vado in fondo se non ho capito male.
Se usi ORDER BY ID DESC, lui mette la cosa in ordine INVERSO, cioe'
dall'ultimo al primo, a questo punto il "primo" e' l'"ultimo".
Davide

 dall'ultimo al primo, a questo punto il "primo" e' l'"ultimo".
In effetti me ne ero dimenticato un pezzo!!!
Pero' non avevo pensato al problema successivo!
Se io elimino un record, quando vado a leggere l'ultimo ID non mi
restituisce il valore reale dei record presenti perche' il capo Id non viene
aggiornato automaticamente! Esiste un modo per aggiornarlo in modo tale che
quando vado a prendere il valore dell'ID mi restituisce il numero reale di
record presenti!
Alessandro

record presenti!
Se vuoi il numero di record usa
SELECT COUNT(*) FROM <tabella>
questo conta il numero di record contenuti nella tabella
Davide