30 messaggi dal 31 luglio 2001
Scusate se vi assillo con il discorso del riconoscimento delle date nelle query,
ma ciò mi crea un problema che non riesco a risolvere, che è il seguente. Ho bisogno che cliccando su una pagina.asp (dove sono riassunti i dati di un database), tramite una query, mi si apra un'altra pagina.asp in cui è contenuto il dettaglio dei dati. Nella prima pagina ho associato ad un campo il collegamento:

<a href="dettagliostorico.asp?Nome=<%=FP_FieldURL(fp_rs,"Nome")%>&Indirizzo=<%=FP_FieldURL(fp_rs,"Indirizzo")%>&Ultima visita=<%=FP_FieldURL(fp_rs,"Ultima visita")%>">

mentre nella seconda, ho scritto:

fp_sQry="SELECT * FROM ""Storico"" where Nome='" & Replace(Request.QueryString("Nome"),"'","''") & "' and Indirizzo='" & Replace(Request.QueryString("Indirizzo"),"'","''") & "'and Ultima visita='" & Replace(Request.QueryString("Ultima visita"),"'","''") & "'"

Così facendo, quando le metto on line, mi da il seguente messaggio di errore:

Database Results Error
Description: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Nome='Le Finestre' and Indirizzo='Via Chiana, 80/86'and Ultima visita='8/25/00''.
Number: -2147217900 (0x80040E14)
Source: Microsoft OLE DB Provider for ODBC Drivers

Vi dico subito che se ometto la chiave "Ultima visita", l'interrogazione funziona, ma io ho bisogno di filtrare i dati anche con il campo ultima visita. Penso che il problema sia connesso alla lettura della data. Sapete dirmi che c'è che non va nelle stringhe che ho scritto? Grazie mille.

499 messaggi dal 14 luglio 2001
In che formato è l'imput del form per quano riguarda la data?...

controlla se usi gg/mm/aaaa
e Access usa g/m/an e magari anche l'ora, rivedendo il tipo di errore sembrerebbe che ti sei scordato qualche paramentro, quindi presumo che sia l'ora che nel campo access c'è ma che nella query non viene specificata....

controlla bene il formato dell'Input e quello di access e addirittura quello di sistema... :-)) è probabile che ci siano tre formati differenti...

:-))

ciao

e se hai prob... Posta...





enzo
www.dnetware.it

Modificato - conidi - 13 Ago 2001 22:36:37

enzo
www.dnetware.it
30 messaggi dal 31 luglio 2001
Il problema penso sia connesso al fatto che la data è un campo numerico. Infatti, oltre al problema detto, ho un altro tipo di errore che può aiutare a capire l'origine del problema. Quando chiamo la pagina .asp in cui è riportato in tabella il riassunto dei dati del database, se metto la stringa:

fp_sQry="SELECT * FROM ""Storico"" where Nome='" & Replace(Request.QueryString("Nome"),"'","''") & "' ORDER BY Città DESC"


mi crea la tabella senza problemi, mentre se voglio che me li ordini per data, con la seguente stringa:


fp_sQry="SELECT * FROM ""Storico"" where Nome='" & Replace(Request.QueryString("Nome"),"'","''") & "' ORDER BY Ultima visita DESC"


mi da il seguente messaggio di errore:


Database Results Error
Description: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Ultima visita'.
Number: -2147217900 (0x80040E14)
Source: Microsoft OLE DB Provider for ODBC Drivers




Dovrebbe essere un problema di virgolette, ma sono poco esperto e non so quindi come modificare la stringa: potete aiutarmi?



499 messaggi dal 14 luglio 2001
Però non ho capito una cosa:
tu fai un replace di qualche carattere con la data, ma mi fai capire come inserisci la data nel form?

es:--> 01-01-2001, oppure 01/01/2001, oppure 01.01.2001, come la inserisci e perchè fai un replace del valore data?....

e fammi capire in che formato è la data di Access, se 1/1/2001 oppure 01/01/01, oppure 20010101...

fammi degli esempi, se non me li fai... come ti aiuto?....

:-))

ciao


enzo
www.dnetware.it

Modificato - conidi - 14 Ago 2001 13:03:56

enzo
www.dnetware.it
30 messaggi dal 31 luglio 2001
Hai ragione, provo a spiegarmi (sono abbastanza ignorante in materia).

1) il replace sulla data me lo sono portato dietro dalle altre query scritte per il campo "indirizzo" (mi dava errore in presenza dell'apostrofo) facendo copia/incolla e poi cambiando solo il nome dei campi. Dunque si può togliere.

2)Nel database, fatto con access, il formato della data è quello che chiama "Data in cifre" e cioè 23/03/2001, mentre non so nè che formato di data ha impostato il server (si tratta di aruba).

Ora non so se sto dicendo una cavolata, ma io non inserisco la data in un form. Nel senso che il mio sito è strutturato così: ho una pagina (ad esempio http://www.guidacargiani.it/listastorico.asp?Nome=Aladino&Indirizzo=Via+delle+Prome,+11)
in cui ho la lista delle recensioni storiche, cliccando sul campo data della tabella, mi si apre un'altra pagina.asp in cui c'è la descrizione dettagliata del ristorante recensito (ad esempio
http://www.guidacargiani.it/dettagliostorico.asp?Nome=Aladino&Indirizzo=Via+delle+Prome%2C+11&Ultima visita=28%2F04%2F01)

Quest'ultima pagina non si apre perchè nella query c'è il campo data, altrimenti funzionerebbe (ho provato).

Il mio sito è www.guidacargiani.it e le pagine in questione sono consultabili dalla ricerca per regioni.

Spero che così sia più chiaro, altrimenti ti posso mandare i codici delle due pagine .asp.

Grazie ancora per l'aiuto.

499 messaggi dal 14 luglio 2001
<b>pinopino ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote>quote:<hr height=1 noshade id=quote>

mentre nella seconda, ho scritto:

fp_sQry="SELECT * FROM ""Storico"" where Nome='" & Replace(Request.QueryString("Nome"),"'","''") & "' and Indirizzo='" & Replace(Request.QueryString("Indirizzo"),"'","''") & "'and Ultima visita='" & Replace(Request.QueryString("Ultima visita"),"'","''") & "'"
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>

Prova a scrivere la stringa SQL in questo modo:

(se storico è una tabella, un piccolo dubbio.. Ultima Visita è il nome di un campo?, se si , per regola i nomi dei campi andrebbero tutti attaccati ocon lo "_")

fp_sQry="SELECT * FROM Storico WHERE Nome='"" & Replace(Request.QueryString("Nome"),"'","''") & "' AND Indirizzo='" & Replace(Request.QueryString("Indirizzo"),"'","''") & "' AND Ultimavisita='" & Request.QueryString("Ultima visita")& "'"......

cioè elimina qualsiasi replace che riguarda la data...
dimmi se ti funziona.. altrimenti forziamo la conversione,

Ho visto che al link della pagina usa lo stesso formato di access, per cui non dovrebbero esserci problemi, ma elimina tutti i replace che interessano ladata...

ciao... fammmi sapere..






enzo
www.dnetware.it

enzo
www.dnetware.it
499 messaggi dal 14 luglio 2001
Aspetta....

Ho notato che c'è una differenza fondamentale che risolve il tuo errore:

la data sul sito è gg/mm/aa
la data di Access gg/mm/aaaa

è normale che ti dà l'errore, prova a fare in questo modo...

fp_sQry=".....AND Ultimavisita='" & Cdate(Request.QueryString("Ultima visita"))& "'"......

prova a forzare la conversione della data con CDate() come scritto sopra....

fammi sapere....

ciao.






enzo
www.dnetware.it

enzo
www.dnetware.it
30 messaggi dal 31 luglio 2001
Ho provato inserendo questa stringa:

fp_sQry="SELECT * FROM ""Storico"" where Nome='" & Replace(Request.QueryString("Nome"),"'","''") & "' and Indirizzo='" & Replace(Request.QueryString("Indirizzo"),"'","''") & "'and Ultima visita='" & Cdate(Request.QueryString("Ultima visita")) & "'"


nella pagina .asp a cui accedo cliccando sull'hiperlink dell'altra pagina .asp:

&lt;a href="dettagliostorico.asp?Nome=&lt;%=FP_FieldURL(fp_rs,"Nome")%&gt;&Indirizzo=&lt;%=FP_FieldURL(fp_rs,"Indirizzo")%&gt;&Ultima visita=&lt;%=FP_FieldURL(fp_rs,"Ultima visita")%&gt;"&gt;

Purtroppo mi da errore:

Database Results Error
Description: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Nome='Trattoria del Borgo' and Indirizzo='Via della Sposa, 23/a'and Ultima visita='27/01/01''.
Number: -2147217900 (0x80040E14)
Source: Microsoft OLE DB Provider for ODBC Drivers


Che fare?



Modificato - pinopino - 14 Ago 2001 14:56:52

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.