50 messaggi dal 28 maggio 2001
Ciao a tutti, mi chiamo Mary e sono una principiante con le ASP(ma molto pero'...).Un aiuto please. Vorrei che venissero visualizzati gli ultimi 5 record immessi nel db ma in ordine di data non di id. Ho provatoun procedimento ma mi fa vedere solo un record. Mi dite dove sbaglio?O meglio ancora se c'e' un modo + agevole per ottenere il risultato? Grazie a tutti.
Di seguito il mio codice.

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open "scott ORDER BY id DESC", conn, , ,adCmdTable


' do alla variabile DATA il valore del campo data nel db
data = rs("data")

oggi= date()

' calcolo la diffenza di giorni che intercorre da oggi alla data nel db

diff= DateDiff("d", oggi,data)

' se la differenza di giorni e' minore o = a 5 allora visualizza il record


if diff <= 5 then

strId = rs("id")
strNomeagente = rs("nomeagente")
strMessaggio = rs("messaggiomit")
%>
Id <%= strId %>
Data <%= data %>
Agente <%= strNomeagente %>

Messaggio <%= strMessaggio %>
<%
rs.Movenext 'salta al prossimo record
end if

%>

50 messaggi dal 28 maggio 2001
scusate nel precendente messaggio non mi sono espressa bene: vorrei visualizzare tutti i messaggi immessi nel db negli ultimi 5 giorni e non oltre..grazie!

499 messaggi dal 14 luglio 2001
Lo fai direttamente da SQL:
datainizio=Date()-5
datafine=Date()
SQL="SELECT * FROM tuatabella WHERE campodata>='" & datainizio & " 00:00:00' AND data <='" & datafine & " 23:59:59' ORDER BY campo DESC"



ed hai tutti i valori dei records compresi tra queste date , cioè tra
OGGI e 5 Giorni Fa
:-))

ciao

enzo
www.dnetware.it

però ho notate che la tua stringa SQL è "mozzata", controlla la stringa e la connessione....

di nuovo :-))

Modificato - conidi - 29 Lug 2001 22:50:24

enzo
www.dnetware.it
50 messaggi dal 28 maggio 2001
Ciao Enzo
ti ringrazio della risposta ma purtroppo non mi funzia..ho fatto cosi: ho dichiarato le variabili e gli ho assegnato i valori che tu mi hai indicato, poi nella connessione al recordset ho scritto:

sql="select * from scott where data >= ' " & datainizio & " 00:00:00 ' and data <=' " & datafine & " 23:59:59 ' ORDER BY campo DESC"

mettendo rs.movenext in fondo ma mi da il seguente errore:

Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
/agenti/lastfivedays.asp, line 33

dove alla 33sima riga altro non c'e' che datamsg=rs("data")
dove sbaglio?
grazie....scusa ma sono dura di comprendonio...

8 messaggi dal 18 luglio 2001
prova così:

Dim rs, sql
sql="select * from --nometabella-- where campodata>=now-5"
set rs=server.createObject("adodb.recordset")
rs.open sql, conn

do while not rs.eof=true

'--mostra a video cio' che vuoi visualizzare--

rs.movenext
loop

rs.close
set rs=nothing

499 messaggi dal 14 luglio 2001
ciao Mary, infatti come ti avevo scritto al primo post, è la connessione al DB che non va bene, io pensavo che l'avevi omesso per chiarezza di listato, ma in effetti non era così.

Lerrore che ti da è perchè non hai istanziato l'oggetto di connessione al DB:
ora ti faccio un esempio..

se non hai una stringa di connessione e
Se stai utilizzando una connessione ODBC ed un database SQL devi fare così:

<%strConnect = "Provider=SQLOLEDB;Data Source=NOMETUODATABASE;Initial Catalog=TUODATABASE;User Id=TUOUSERID;PASSWORD=TUAPASSWORD"
strConnect = "Driver={SQL Server};Server=NOMEDELSERVER;Database=TUODATABASE;UID=TUOUSERID;PWD=TUAPASSWORD"
Set Conn = Server.CreateObject("ADODB.Connection")%>

Queste sono le stringhe di connessione al tuo database , la puoi inserire nel File Global.asa oppure in un file (es: connessione.asp o .inc) e la includi con il comando <!--#Include File="connessione.asp oppure .inc"--> il file include deve essere fuori dai tag <%%> nelle pagine dove si richiede una connessione al DB.. come nella pagina che stai facendo...

dopodichè ti scrivo la pagina..:

<%@ Language=VBScript %>
<!--#Include File="connessione.asp"-->
<%Conn.Open strConnect
datainizio=Date()-5
datafine=Date()
Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM tuatabella WHERE data>='" & datainizio & " 00:00:00' AND data <='" & datafine & " 23:59:59' ORDER BY campo DESC"
Set rs=Conn.Execute(SQL)
rs.MoveFirst
Do While Not rs.EOF
Response.Write("ID :" & rs("ID"))
Response.Write("<P>Data :" & rs("data"))
Response.Write("<P>nome agente :" & rs("nomeagente"))
Response.Write("<P>Messaggio Mittente :" & rs("messaggiomit"))
rs.MoveNext
Loop
rs.Close
Set rs=Nothing


vedrai che ti funziona, controlla bene la connessione al DB...

tuatabella sta per il nome della tabella da dove prendi i dati e campo DESC è il campo che vuoi far visualizzare con un criterio, in questo caso discendente:

es:

ORDER BY Data DESC ti farà vedere tutti i campi selezionati con un ordine preciso , e cioè per i valori del campo DATA in modo Didcendente, altrimenti ASC in modo ascendente....

spero di essere stato chiaro...

se hai problemi non preoccuparti.. posta sul forum.. :-))

ciao


enzo
www.dnetware.it

Dimenticavo di dirti che ci sono diversi esempi per la connessione al db nella sezione di questo forum :

http://aspitalia.com/articoli/db
o
http://www.aspitalia.com/articoli/db/ole-db.asp



Modificato - conidi - 30 Lug 2001 02:43:55

enzo
www.dnetware.it
1.605 messaggi dal 06 settembre 2002
prova così "SELECT * FROM tuatabella WHERE datediff(day,data,getdate()) >= 5

FORZA LA MAGICA ROMA

FORZA LA MAGICA ROMA
50 messaggi dal 28 maggio 2001
Ciao e grazie a tutti per le risposte..mi avete dato varie possibilita' una mi funziera' sicuro.
Per Conidi: guarda che la connessione al db so cosa sia l'ho omessa per non postare tutto il codice, cosi come ho omesso tutta la formattazione della pagina.
Io uso una connessione dsn-less, metto un file incluso di questo tipo:

<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("../database/miodatabase.mdb")
%>
che dici va bene?Comunque grazie vi faro' sapere se ho risolto.
Ciao, Mary

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.