PDA

View Full Version : [ASP] Problema con la funzione now()


Sifr
30-05-2006, 12:47
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?

Sifr
30-05-2006, 18:31
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..

Stiwy.NET
01-06-2006, 14:08
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..
Forse non ho capito appieno il tuo problema, ma potrebbe essere che stai facendo macello tra php e asp? Hai detto che vuoi usare ASP, ma metà del codice che hai scritto è per php: la struttura del while, la dichiarazione delle variabili (inutile).
E il fatto che tu voglia scrivere <%@ LANGUAGE = JScript %> ne è la prova... quindi... che linguaggio vuoi usare?

sndk4ASP
01-06-2006, 21:20
Dunque, innanzitutto un OT: ciao Stiwy.NET :D

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 :)

Stiwy.NET
02-06-2006, 12:07
Dunque, innanzitutto un OT: ciao Stiwy.NET :D

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 :)
ciao sndk4ASP è da parecchio che non ci si becca... cm va?

Kmq grazie per la spiegazione... ho imparato qualcosa di nuovo :Prrr: