|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2003
Messaggi: 366
|
[ASP] Problema con la funzione now()
Salve,
non sono molto bravo in asp, visto che di solito faccio tutto in php, ora però sto cercando di far funzionare un semplice script che divida le news in 2 parti a seconda che siano antecedenti o precedenti alla data di oggi. Questa porzione di codice risulta errata: <% // Istanzio l'oggetto Connection var ADOConn = new ActiveXObject("ADODB.Connection"); // Creo la STRINGA DI CONNESSIONE var strConn = ""; strConn += "driver={Microsoft Access Driver (*.mdb)};"; strConn += "dbq=" + Server.MapPath("/mdb-database/database.mdb"); // Apro la connessione al database selezionato ADOConn.Open(strConn); // Interrogo il database var sql = "SELECT * FROM ultimi_prox WHERE Data>=#" & Now() & "# " var ris = ADOConn.Execute(sql); // Stampo i dati contenuti nel database while (!ris.EOF) { Response.Write("<a href=" + ris("Link") + ">" + ris("Nome") + "</a>"); //Response.Write(ris("Nome")); ris.MoveNext(); } // Chiudo la connessione ADOConn.Close(); %> Microsoft JScript runtime error '800a138f' Object expected /public/brevissime.asp, line 111 Questa è la 111 var sql = "SELECT * FROM ultimi_prox WHERE Data>=#" & Now() & "# " Allora ho cercato e trovato questo piccolo script, che effettua egregiamente la divisione. <% // Definisci la connessione Set objConn = Server.createObject("ADODB.Connection") // Definisci stringa di connessione strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/mdb-database/database.mdb") // Apri la connessione objConn.Open strConn strSQL = "select COUNT(*) AS totaleRecord FROM ultimi_prox WHERE Data<=#" & Now() & "#" Set objRs = Server.createObject("ADODB.Recordset") // Eseguo la query objRs.Open strSQL, objConn // Stampa il risultato Response.Write("Nel database sono presenti ") // Ecco il risultato del conteggio Response.Write(objRs("totaleRecord")) Response.Write(" record in totale.") // Chiudi e distruggi oggetti objRs.Close Set objRs = Nothing objConn.Close Set objConn = Nothing %> Tuttavia, adesso, devo fare in modo che questo ultimo frammento non faccia solo il COUNT dei record, ma voglio che me li stampi uno per uno! Idee? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2003
Messaggi: 366
|
ho notato una cosa.
Se scrivo un semplicissimo codice: <%Response.Write Now()%> dopo un altrettanto semplice codice: <%@ LANGUAGE = JScript %> ottengo un errore, altrimenti va tutto liscio.. tuttavia senza il @language=jscript non funziona tutto il resto della pagina.. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 611
|
Quote:
E il fatto che tu voglia scrivere <%@ LANGUAGE = JScript %> ne è la prova... quindi... che linguaggio vuoi usare? |
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Dec 2002
Città: Outer space and beyond!!
Messaggi: 32
|
Dunque, innanzitutto un OT: ciao Stiwy.NET
![]() Dunque in ASP si possono utilizzare svariati linguaggi di scripting. I più utilizzati sono il VBscript (sintassi del Visual Basic) e il Jscript (sintassi del Javascript). Oggetti, classi e collection che si possono utilizzare sono praticamente gli stessi (vedi Response, Request, Server ecc.) ma la sintassi dei linguaggi cambia in base al linguaggio prescelto. Anche se per le prestazioni non è il massimo si ha la libertà di scegliere un linguaggio diverso per pagine diverse, però all'interno della stessa pagina bisogna utilizzare lo stesso linguaggio. le direttive <%@ LANGUAGE = JScript %> e <%@ LANGUAGE = VBScript %> permettono di indicare all'interprete quale linguaggio viene utilizzato nella pagina (difatti va posizionata in cima alla stessa). Se omessa viene utilizzata l'impostazione predefinita del server (che di default è VBScript) Utilizzando Jscript quindi questa istruzione è errata: var sql = "SELECT * FROM ultimi_prox WHERE Data>=#" & Now() & "# " al posto delle & per concatenare delle stringhe bisogna usare + inotre la funzione Now() in Jscript non esiste! Per avere la data dovresti fare una cosa tipo questa: c=new Date(); DataStringa = c.getDate() + "/" + (c.getMonth()+1) + "/" + c.getFullYear(); Per concludere ha ragione Stiwy, stai facendo un po' di confusione ![]()
__________________
O_o |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 611
|
Quote:
Kmq grazie per la spiegazione... ho imparato qualcosa di nuovo ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:34.